serge-sans-paille / pythran

Ahead of Time compiler for numeric kernels
https://pythran.readthedocs.io
BSD 3-Clause "New" or "Revised" License
2.01k stars 193 forks source link

Compile error on windows with assert and -DUSE_XSIMD #1645

Open cycomanic opened 4 years ago

cycomanic commented 4 years ago

Here's another compile error on windows with LLVM. This is a bit weird because it only appears with -DUSE_XSIMD and if there are some assert statements (which I thought would be compiled out when specifying -DNDEBUG? but the error still persists).

This code fails:

import numpy as np
#pythran export select_angles(float64[][], int[])
#pythran export select_angles(float32[][], int[])
#pythran export select_angles(float64[][], int32[])
#pythran export select_angles(float32[][], int32[])
def select_angles(angles, idx):
    L = angles.shape[0]
    assert idx.shape[0] >= L
    assert np.max(idx) < angles.shape[-1] 
    anglesn = np.zeros(L, dtype=angles.dtype)
    if angles.shape[0] > 1:
        #omp parallel for
        for i in range(L):
            anglesn[i] = angles[i, idx[i]]
        return anglesn
    else:
        L = idx.shape[0]
        anglesn = np.zeros(L, dtype=angles.dtype)
        #omp parallel for
        for i in range(L):
            anglesn[i] = angles[0, idx[i]]
    return anglesn

Compile error only when -DUSE_XSIMD is specified:

C:\Program Files\LLVM\bin\clang-cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DENABLE_PYTHON_MODULE -D__PYTHRAN__=3 -DUSE_XSIMD -DNDEBUG -DPYTHRAN_BLAS_OPENBLAS -Ic:\users\jochen\anaconda3\lib\site-packages/pythran -Ic:\users\jochen\anaconda3\lib\site-packages\numpy\core\include -Ic:\users\jochen\anaconda3\lib\site-packages\pythran_openblas\include\openblas -Ic:\users\jochen\anaconda3\include -Ic:\users\jochen\anaconda3\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\ATLMFC\include -IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt -IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt /EHsc /TpC:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp /FoC:\Users\Jochen\AppData\Local\Temp\tmph371ntaj\Release\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.obj /std:c++14
clang-cl: warning: argument unused during compilation: '/GL' [-Wunused-command-line-argument]
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:1:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/core.hpp:27:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/int.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/int.hpp:19:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/python/core.hpp:19:
In file included from c:\users\jochen\anaconda3\lib\site-packages\numpy\core\include\numpy/arrayobject.h:4:
In file included from c:\users\jochen\anaconda3\lib\site-packages\numpy\core\include\numpy/ndarrayobject.h:12:
c:\users\jochen\anaconda3\lib\site-packages\numpy\core\include\numpy/ndarraytypes.h(91,9): warning: unknown pragma
      ignored [-Wunknown-pragmas]
#pragma deprecated(NPY_CHAR)
        ^
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:1:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/core.hpp:29:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/slice.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/NoneType.hpp:8:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/builtins/bool_.hpp:7:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/tuple.hpp:13:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/ndarray.hpp:1293:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/numpy_operators.hpp:15:
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/operator_/lshift.hpp(21,15): warning: converting the result
      of '<<' to a boolean; did you mean '(a << b) != 0'? [-Wint-in-bool-context]
      lshift, <<, (a <= (std::numeric_limits<decltype(b)>::max() >> b)))
              ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(119,172): warning: unused variable 'i' [-Wunused-variable]
  ...std::iterator_traits<typename std::remove_reference<__type7>::type::iterator>::value_type>::type>::type i;
                                                                                                             ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(159,75): note: in instantiation of function template specialization
      '__pythran_test::select_angles::operator()<(anonymous namespace)::pythonic::types::ndarray<float, (anonymous
      namespace)::pythonic::types::pshape<long, long> > &, (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &>' requested here
                                auto res = __pythran_test::select_angles()(angles, idx);
                                                                          ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(120,173): warning: unused variable 'i_' [-Wunused-variable]
  ...std::iterator_traits<typename std::remove_reference<__type20>::type::iterator>::value_type>::type>::type i_;
                                                                                                              ^
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:34:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic\numpy\max.hpp:7:
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(80,30): error: type 'vT' (aka 'long')
      cannot be used prior to '::' because it has no members
    static const size_t vN = vT::size;
                             ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(114,14): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::vreduce<(anonymous
      namespace)::pythonic::types::vectorizer_nobroadcast, (anonymous namespace)::pythonic::operator_::functor::imax,
      (anonymous namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> >,
      long>' requested here
      return vreduce<types::vectorizer_nobroadcast, Op>(std::forward<E>(e),
             ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(148,16): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::_reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, 1, (anonymous
      namespace)::pythonic::types::vectorizer_nobroadcast>::operator()<const (anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &, long>'
      requested here
        return _reduce<Op, E::value, types::vectorizer_nobroadcast>{}(expr, p);
               ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(162,12): note: in instantiation of member
      function '(anonymous namespace)::pythonic::numpy::reduce_helper<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> >, true>::operator()' requested here
    return reduce_helper<Op, E, is_vectorizable>{}(expr, p);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic\numpy\max.hpp(19,12): note: in instantiation of function
      template specialization '(anonymous namespace)::pythonic::numpy::reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> > >' requested here
    return reduce<operator_::functor::imax>(std::forward<Args>(args)...);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/numpy/max.hpp(16,35): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::max<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
  DEFINE_FUNCTOR(pythonic::numpy, max);
                                  ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(123,54): note: in instantiation of function template specialization
      '(anonymous namespace)::pythonic::numpy::functor::max::operator()<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
    pythonic::pythran_assert(pythonic::operator_::lt(pythonic::numpy::functor::max{}(idx), pythonic::builtins::g...
                                                     ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(159,75): note: in instantiation of function template specialization
      '__pythran_test::select_angles::operator()<(anonymous namespace)::pythonic::types::ndarray<float, (anonymous
      namespace)::pythonic::types::pshape<long, long> > &, (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &>' requested here
                                auto res = __pythran_test::select_angles()(angles, idx);
                                                                          ^
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:1:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/core.hpp:29:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/slice.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/NoneType.hpp:8:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/builtins/bool_.hpp:4:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/builtins/bool_.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/tuple.hpp:6:
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/nditerator.hpp(105,44): error: type
      '(anonymous namespace)::pythonic::types::const_simd_nditerator<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > >::vector_type'
      (aka 'long') cannot be used prior to '::' because it has no members
    static const std::size_t vector_size = vector_type::size;
                                           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(82,18): note: in instantiation of template
      class '(anonymous namespace)::pythonic::types::const_simd_nditerator<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > >' requested
      here
    auto viter = vectorizer::vbegin(e), vend = vectorizer::vend(e);
                 ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(114,14): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::vreduce<(anonymous
      namespace)::pythonic::types::vectorizer_nobroadcast, (anonymous namespace)::pythonic::operator_::functor::imax,
      (anonymous namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> >,
      long>' requested here
      return vreduce<types::vectorizer_nobroadcast, Op>(std::forward<E>(e),
             ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(148,16): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::_reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, 1, (anonymous
      namespace)::pythonic::types::vectorizer_nobroadcast>::operator()<const (anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &, long>'
      requested here
        return _reduce<Op, E::value, types::vectorizer_nobroadcast>{}(expr, p);
               ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(162,12): note: in instantiation of member
      function '(anonymous namespace)::pythonic::numpy::reduce_helper<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> >, true>::operator()' requested here
    return reduce_helper<Op, E, is_vectorizable>{}(expr, p);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic\numpy\max.hpp(19,12): note: in instantiation of function
      template specialization '(anonymous namespace)::pythonic::numpy::reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> > >' requested here
    return reduce<operator_::functor::imax>(std::forward<Args>(args)...);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/numpy/max.hpp(16,35): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::max<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
  DEFINE_FUNCTOR(pythonic::numpy, max);
                                  ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(123,54): note: in instantiation of function template specialization
      '(anonymous namespace)::pythonic::numpy::functor::max::operator()<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
    pythonic::pythran_assert(pythonic::operator_::lt(pythonic::numpy::functor::max{}(idx), pythonic::builtins::g...
                                                     ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(159,75): note: in instantiation of function template specialization
      '__pythran_test::select_angles::operator()<(anonymous namespace)::pythonic::types::ndarray<float, (anonymous
      namespace)::pythonic::types::pshape<long, long> > &, (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &>' requested here
                                auto res = __pythran_test::select_angles()(angles, idx);
                                                                          ^
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:1:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/core.hpp:29:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/slice.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/NoneType.hpp:8:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/builtins/bool_.hpp:7:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/tuple.hpp:13:
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic\types\ndarray.hpp(683,44): error: type 'vector_type'
      (aka 'long') cannot be used prior to '::' because it has no members
    static const std::size_t vector_size = vector_type::size;
                                           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/vectorizable_type.hpp(42,36): note: in
      instantiation of function template specialization '(anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> >::vend<(anonymous
      namespace)::pythonic::types::vectorize_nobroadcast>' requested here
      return std::forward<E>(expr).vend(vectorize_nobroadcast{});
                                   ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(82,60): note: in instantiation of function
      template specialization '(anonymous namespace)::pythonic::types::vectorizer_nobroadcast::vend<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
    auto viter = vectorizer::vbegin(e), vend = vectorizer::vend(e);
                                                           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(114,14): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::vreduce<(anonymous
      namespace)::pythonic::types::vectorizer_nobroadcast, (anonymous namespace)::pythonic::operator_::functor::imax,
      (anonymous namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> >,
      long>' requested here
      return vreduce<types::vectorizer_nobroadcast, Op>(std::forward<E>(e),
             ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(148,16): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::_reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, 1, (anonymous
      namespace)::pythonic::types::vectorizer_nobroadcast>::operator()<const (anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &, long>'
      requested here
        return _reduce<Op, E::value, types::vectorizer_nobroadcast>{}(expr, p);
               ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(162,12): note: in instantiation of member
      function '(anonymous namespace)::pythonic::numpy::reduce_helper<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> >, true>::operator()' requested here
    return reduce_helper<Op, E, is_vectorizable>{}(expr, p);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic\numpy\max.hpp(19,12): note: in instantiation of function
      template specialization '(anonymous namespace)::pythonic::numpy::reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> > >' requested here
    return reduce<operator_::functor::imax>(std::forward<Args>(args)...);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/numpy/max.hpp(16,35): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::max<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
  DEFINE_FUNCTOR(pythonic::numpy, max);
                                  ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(123,54): note: in instantiation of function template specialization
      '(anonymous namespace)::pythonic::numpy::functor::max::operator()<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
    pythonic::pythran_assert(pythonic::operator_::lt(pythonic::numpy::functor::max{}(idx), pythonic::builtins::g...
                                                     ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(159,75): note: in instantiation of function template specialization
      '__pythran_test::select_angles::operator()<(anonymous namespace)::pythonic::types::ndarray<float, (anonymous
      namespace)::pythonic::types::pshape<long, long> > &, (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &>' requested here
                                auto res = __pythran_test::select_angles()(angles, idx);
                                                                          ^
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:34:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic\numpy\max.hpp:7:
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(80,30): error: type 'vT' (aka 'long')
      cannot be used prior to '::' because it has no members
    static const size_t vN = vT::size;
                             ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(106,14): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::vreduce<(anonymous
      namespace)::pythonic::types::vectorizer, (anonymous namespace)::pythonic::operator_::functor::imax, (anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> >, long>'
      requested here
      return vreduce<types::vectorizer, Op>(std::forward<E>(e), acc);
             ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(150,16): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::_reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, 1, (anonymous
      namespace)::pythonic::types::vectorizer>::operator()<const (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &, long>' requested here
        return _reduce<Op, E::value, types::vectorizer>{}(expr, p);
               ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(162,12): note: in instantiation of member
      function '(anonymous namespace)::pythonic::numpy::reduce_helper<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> >, true>::operator()' requested here
    return reduce_helper<Op, E, is_vectorizable>{}(expr, p);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic\numpy\max.hpp(19,12): note: in instantiation of function
      template specialization '(anonymous namespace)::pythonic::numpy::reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> > >' requested here
    return reduce<operator_::functor::imax>(std::forward<Args>(args)...);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/numpy/max.hpp(16,35): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::max<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
  DEFINE_FUNCTOR(pythonic::numpy, max);
                                  ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(123,54): note: in instantiation of function template specialization
      '(anonymous namespace)::pythonic::numpy::functor::max::operator()<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
    pythonic::pythran_assert(pythonic::operator_::lt(pythonic::numpy::functor::max{}(idx), pythonic::builtins::g...
                                                     ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(159,75): note: in instantiation of function template specialization
      '__pythran_test::select_angles::operator()<(anonymous namespace)::pythonic::types::ndarray<float, (anonymous
      namespace)::pythonic::types::pshape<long, long> > &, (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &>' requested here
                                auto res = __pythran_test::select_angles()(angles, idx);
                                                                          ^
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:34:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic\numpy\max.hpp:7:
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(85,19): error: implicit instantiation of
      undefined template 'xsimd::batch<long, 1>'
      auto vacc = *viter;
                  ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/types/xsimd_base.hpp(34,11): note: template is declared here
    class batch;
          ^
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:1:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/core.hpp:29:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/slice.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/NoneType.hpp:8:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/builtins/bool_.hpp:7:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/tuple.hpp:13:
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic\types\ndarray.hpp(683,44): error: type 'vector_type'
      (aka 'long') cannot be used prior to '::' because it has no members
    static const std::size_t vector_size = vector_type::size;
                                           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/vectorizable_type.hpp(26,36): note: in
      instantiation of function template specialization '(anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> >::vend<(anonymous namespace)::pythonic::types::vectorize>'
      requested here
      return std::forward<E>(expr).vend(vectorize{});
                                   ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(82,60): note: in instantiation of function
      template specialization '(anonymous namespace)::pythonic::types::vectorizer::vend<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
    auto viter = vectorizer::vbegin(e), vend = vectorizer::vend(e);
                                                           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(106,14): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::vreduce<(anonymous
      namespace)::pythonic::types::vectorizer, (anonymous namespace)::pythonic::operator_::functor::imax, (anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> >, long>'
      requested here
      return vreduce<types::vectorizer, Op>(std::forward<E>(e), acc);
             ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(150,16): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::_reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, 1, (anonymous
      namespace)::pythonic::types::vectorizer>::operator()<const (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &, long>' requested here
        return _reduce<Op, E::value, types::vectorizer>{}(expr, p);
               ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(162,12): note: in instantiation of member
      function '(anonymous namespace)::pythonic::numpy::reduce_helper<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> >, true>::operator()' requested here
    return reduce_helper<Op, E, is_vectorizable>{}(expr, p);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic\numpy\max.hpp(19,12): note: in instantiation of function
      template specialization '(anonymous namespace)::pythonic::numpy::reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> > >' requested here
    return reduce<operator_::functor::imax>(std::forward<Args>(args)...);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/numpy/max.hpp(16,35): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::max<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
  DEFINE_FUNCTOR(pythonic::numpy, max);
                                  ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(123,54): note: in instantiation of function template specialization
      '(anonymous namespace)::pythonic::numpy::functor::max::operator()<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
    pythonic::pythran_assert(pythonic::operator_::lt(pythonic::numpy::functor::max{}(idx), pythonic::builtins::g...
                                                     ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(159,75): note: in instantiation of function template specialization
      '__pythran_test::select_angles::operator()<(anonymous namespace)::pythonic::types::ndarray<float, (anonymous
      namespace)::pythonic::types::pshape<long, long> > &, (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &>' requested here
                                auto res = __pythran_test::select_angles()(angles, idx);
                                                                          ^
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:1:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/core.hpp:29:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/slice.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/NoneType.hpp:8:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/builtins/bool_.hpp:4:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/builtins/bool_.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/tuple.hpp:6:
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/nditerator.hpp(109,10): error: implicit
      instantiation of undefined template 'xsimd::batch<long, 1>'
    auto operator*() const -> decltype(xsimd::load_unaligned(data));
         ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(85,19): note: in instantiation of member
      function '(anonymous namespace)::pythonic::types::const_simd_nditerator<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > >::operator*'
      requested here
      auto vacc = *viter;
                  ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(106,14): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::vreduce<(anonymous
      namespace)::pythonic::types::vectorizer, (anonymous namespace)::pythonic::operator_::functor::imax, (anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> >, long>'
      requested here
      return vreduce<types::vectorizer, Op>(std::forward<E>(e), acc);
             ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(150,16): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::_reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, 1, (anonymous
      namespace)::pythonic::types::vectorizer>::operator()<const (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &, long>' requested here
        return _reduce<Op, E::value, types::vectorizer>{}(expr, p);
               ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(162,12): note: in instantiation of member
      function '(anonymous namespace)::pythonic::numpy::reduce_helper<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> >, true>::operator()' requested here
    return reduce_helper<Op, E, is_vectorizable>{}(expr, p);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic\numpy\max.hpp(19,12): note: in instantiation of function
      template specialization '(anonymous namespace)::pythonic::numpy::reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> > >' requested here
    return reduce<operator_::functor::imax>(std::forward<Args>(args)...);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/numpy/max.hpp(16,35): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::max<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
  DEFINE_FUNCTOR(pythonic::numpy, max);
                                  ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(123,54): note: in instantiation of function template specialization
      '(anonymous namespace)::pythonic::numpy::functor::max::operator()<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
    pythonic::pythran_assert(pythonic::operator_::lt(pythonic::numpy::functor::max{}(idx), pythonic::builtins::g...
                                                     ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(159,75): note: in instantiation of function template specialization
      '__pythran_test::select_angles::operator()<(anonymous namespace)::pythonic::types::ndarray<float, (anonymous
      namespace)::pythonic::types::pshape<long, long> > &, (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &>' requested here
                                auto res = __pythran_test::select_angles()(angles, idx);
                                                                          ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/types/xsimd_base.hpp(34,11): note: template is declared here
    class batch;
          ^
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:1:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/core.hpp:29:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/slice.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/NoneType.hpp:8:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/builtins/bool_.hpp:7:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/tuple.hpp:8:
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/nditerator.hpp(210,12): error: implicit instantiation
      of undefined template 'xsimd::batch<long, 1>'
    return xsimd::load_unaligned(data);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/types/xsimd_base.hpp(34,11): note: template is declared here
    class batch;
          ^
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:1:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/core.hpp:29:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/slice.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/NoneType.hpp:8:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/builtins/bool_.hpp:4:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/builtins/bool_.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/tuple.hpp:6:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/nditerator.hpp:7:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/xsimd.hpp:19:
c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/memory/xsimd_load_store.hpp(514,37): error: implicit
      instantiation of undefined template 'xsimd::batch<long, 1>'
    inline simd_return_type<T1, T2> load_unaligned(const T1* src)
                                    ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/nditerator.hpp(210,19): note: in instantiation of
      function template specialization 'xsimd::load_unaligned<long, long>' requested here
    return xsimd::load_unaligned(data);
                  ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(85,19): note: in instantiation of member
      function '(anonymous namespace)::pythonic::types::const_simd_nditerator<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > >::operator*'
      requested here
      auto vacc = *viter;
                  ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(106,14): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::vreduce<(anonymous
      namespace)::pythonic::types::vectorizer, (anonymous namespace)::pythonic::operator_::functor::imax, (anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> >, long>'
      requested here
      return vreduce<types::vectorizer, Op>(std::forward<E>(e), acc);
             ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(150,16): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::_reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, 1, (anonymous
      namespace)::pythonic::types::vectorizer>::operator()<const (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &, long>' requested here
        return _reduce<Op, E::value, types::vectorizer>{}(expr, p);
               ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(162,12): note: in instantiation of member
      function '(anonymous namespace)::pythonic::numpy::reduce_helper<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> >, true>::operator()' requested here
    return reduce_helper<Op, E, is_vectorizable>{}(expr, p);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic\numpy\max.hpp(19,12): note: in instantiation of function
      template specialization '(anonymous namespace)::pythonic::numpy::reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> > >' requested here
    return reduce<operator_::functor::imax>(std::forward<Args>(args)...);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/numpy/max.hpp(16,35): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::max<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
  DEFINE_FUNCTOR(pythonic::numpy, max);
                                  ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(123,54): note: in instantiation of function template specialization
      '(anonymous namespace)::pythonic::numpy::functor::max::operator()<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
    pythonic::pythran_assert(pythonic::operator_::lt(pythonic::numpy::functor::max{}(idx), pythonic::builtins::g...
                                                     ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(159,75): note: in instantiation of function template specialization
      '__pythran_test::select_angles::operator()<(anonymous namespace)::pythonic::types::ndarray<float, (anonymous
      namespace)::pythonic::types::pshape<long, long> > &, (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &>' requested here
                                auto res = __pythran_test::select_angles()(angles, idx);
                                                                          ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/types/xsimd_base.hpp(34,11): note: template is declared here
    class batch;
          ^
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:1:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/core.hpp:29:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/slice.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/NoneType.hpp:8:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/builtins/bool_.hpp:4:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/builtins/bool_.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/tuple.hpp:6:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/nditerator.hpp:7:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/xsimd.hpp:19:
c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/memory/xsimd_load_store.hpp(516,16): error: implicit
      instantiation of undefined template 'xsimd::batch<long, 1>'
        return detail::simd_function_invoker<T1, simd_return_type<T1, T2>>::load_unaligned(src);
               ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/types/xsimd_base.hpp(34,11): note: template is declared here
    class batch;
          ^
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:1:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/core.hpp:29:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/slice.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/NoneType.hpp:8:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/builtins/bool_.hpp:4:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/builtins/bool_.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/tuple.hpp:6:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/nditerator.hpp:7:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/xsimd.hpp:19:
c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/memory/xsimd_load_store.hpp(379,29): error: implicit
      instantiation of undefined template 'xsimd::batch<long, 1>'
            inline static V load_unaligned(const T* src)
                            ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/memory/xsimd_load_store.hpp(516,77): note: in instantiation of
      member function 'xsimd::detail::simd_function_invoker<long, xsimd::batch<long, 1> >::load_unaligned' requested
      here
        return detail::simd_function_invoker<T1, simd_return_type<T1, T2>>::load_unaligned(src);
                                                                            ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/nditerator.hpp(210,19): note: in instantiation of
      function template specialization 'xsimd::load_unaligned<long, long>' requested here
    return xsimd::load_unaligned(data);
                  ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(85,19): note: in instantiation of member
      function '(anonymous namespace)::pythonic::types::const_simd_nditerator<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > >::operator*'
      requested here
      auto vacc = *viter;
                  ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(106,14): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::vreduce<(anonymous
      namespace)::pythonic::types::vectorizer, (anonymous namespace)::pythonic::operator_::functor::imax, (anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> >, long>'
      requested here
      return vreduce<types::vectorizer, Op>(std::forward<E>(e), acc);
             ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(150,16): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::_reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, 1, (anonymous
      namespace)::pythonic::types::vectorizer>::operator()<const (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &, long>' requested here
        return _reduce<Op, E::value, types::vectorizer>{}(expr, p);
               ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/numpy/reduce.hpp(162,12): note: in instantiation of member
      function '(anonymous namespace)::pythonic::numpy::reduce_helper<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> >, true>::operator()' requested here
    return reduce_helper<Op, E, is_vectorizable>{}(expr, p);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic\numpy\max.hpp(19,12): note: in instantiation of function
      template specialization '(anonymous namespace)::pythonic::numpy::reduce<(anonymous
      namespace)::pythonic::operator_::functor::imax, (anonymous namespace)::pythonic::types::ndarray<long, (anonymous
      namespace)::pythonic::types::pshape<long> > >' requested here
    return reduce<operator_::functor::imax>(std::forward<Args>(args)...);
           ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/numpy/max.hpp(16,35): note: in instantiation of
      function template specialization '(anonymous namespace)::pythonic::numpy::max<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
  DEFINE_FUNCTOR(pythonic::numpy, max);
                                  ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(123,54): note: in instantiation of function template specialization
      '(anonymous namespace)::pythonic::numpy::functor::max::operator()<(anonymous
      namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>' requested
      here
    pythonic::pythran_assert(pythonic::operator_::lt(pythonic::numpy::functor::max{}(idx), pythonic::builtins::g...
                                                     ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(159,75): note: in instantiation of function template specialization
      '__pythran_test::select_angles::operator()<(anonymous namespace)::pythonic::types::ndarray<float, (anonymous
      namespace)::pythonic::types::pshape<long, long> > &, (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &>' requested here
                                auto res = __pythran_test::select_angles()(angles, idx);
                                                                          ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/types/xsimd_base.hpp(34,11): note: template is declared here
    class batch;
          ^
In file included from C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp:1:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/core.hpp:29:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/slice.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/types/NoneType.hpp:8:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/builtins/bool_.hpp:4:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/builtins/bool_.hpp:5:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/tuple.hpp:6:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\pythonic/include/types/nditerator.hpp:7:
In file included from c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/xsimd.hpp:19:
c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/memory/xsimd_load_store.hpp(381,19): error: implicit
      instantiation of undefined template 'xsimd::batch<long, 1>'
                V res;
                  ^
c:\users\jochen\anaconda3\lib\site-packages/pythran\xsimd/types/xsimd_base.hpp(34,11): note: template is declared here
    class batch;
          ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(119,172): warning: unused variable 'i' [-Wunused-variable]
  ...std::iterator_traits<typename std::remove_reference<__type7>::type::iterator>::value_type>::type>::type i;
                                                                                                             ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(174,75): note: in instantiation of function template specialization
      '__pythran_test::select_angles::operator()<(anonymous namespace)::pythonic::types::numpy_texpr<(anonymous
      namespace)::pythonic::types::ndarray<float, (anonymous namespace)::pythonic::types::pshape<long, long> > > &,
      (anonymous namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>'
      requested here
                                auto res = __pythran_test::select_angles()(angles, idx);
                                                                          ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(120,173): warning: unused variable 'i_' [-Wunused-variable]
  ...std::iterator_traits<typename std::remove_reference<__type20>::type::iterator>::value_type>::type>::type i_;
                                                                                                              ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(119,172): warning: unused variable 'i' [-Wunused-variable]
  ...std::iterator_traits<typename std::remove_reference<__type7>::type::iterator>::value_type>::type>::type i;
                                                                                                             ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(189,75): note: in instantiation of function template specialization
      '__pythran_test::select_angles::operator()<(anonymous namespace)::pythonic::types::ndarray<double, (anonymous
      namespace)::pythonic::types::pshape<long, long> > &, (anonymous namespace)::pythonic::types::ndarray<long,
      (anonymous namespace)::pythonic::types::pshape<long> > &>' requested here
                                auto res = __pythran_test::select_angles()(angles, idx);
                                                                          ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(120,173): warning: unused variable 'i_' [-Wunused-variable]
  ...std::iterator_traits<typename std::remove_reference<__type20>::type::iterator>::value_type>::type>::type i_;
                                                                                                              ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(119,172): warning: unused variable 'i' [-Wunused-variable]
  ...std::iterator_traits<typename std::remove_reference<__type7>::type::iterator>::value_type>::type>::type i;
                                                                                                             ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(204,75): note: in instantiation of function template specialization
      '__pythran_test::select_angles::operator()<(anonymous namespace)::pythonic::types::numpy_texpr<(anonymous
      namespace)::pythonic::types::ndarray<double, (anonymous namespace)::pythonic::types::pshape<long, long> > > &,
      (anonymous namespace)::pythonic::types::ndarray<long, (anonymous namespace)::pythonic::types::pshape<long> > &>'
      requested here
                                auto res = __pythran_test::select_angles()(angles, idx);
                                                                          ^
C:\Users\Jochen\AppData\Local\Temp\tmp6rot_slf.cpp(120,173): warning: unused variable 'i_' [-Wunused-variable]
  ...std::iterator_traits<typename std::remove_reference<__type20>::type::iterator>::value_type>::type>::type i_;
                                                                                                              ^
10 warnings and 12 errors generated.

However when removing the assert statements, the code succeeds. BTW do those asserts actually help avoid bound checks?

edmBernard commented 3 years ago

I also got these kind of errors and put a comment here https://github.com/serge-sans-paille/pythran/issues/1725#issuecomment-784863115 I don't know if these issue was related