JuliaSIMD / JuliaSIMD/StrideArrays.jl
Error broadcasting a stride array with a unitrange:
- Dominant language
- Julia
- Stars
- 59
- Forks
- 9
- PR merge metrics
- No merged PRs in 30d
Description
This works fine with StrideArraysCore.jl, but not with StrideArrays.jl
```julia
#+begin_src julia
using StrideArrays
let A = StrideArray{Float64}(undef, 10, 10)
v = 1:10
A .= v .* v'
end
#+end_src
#+RESULTS:
:RESULTS:
# [goto error]
#+begin_example
conversion to pointer not defined for UnitRange{Int64}
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:35
[2] unsafe_convert(#unused#::Type{Ptr{Int64}}, a::UnitRange{Int64})
@ Base ./pointer.jl:67
[3] unsafe_convert(#unused#::Type{Ptr{Int64}}, A::Adjoint{Int64, UnitRange{Int64}})
@ LinearAlgebra ~/julia/usr/share/julia/stdlib/v1.9/LinearAlgebra/src/adjtrans.jl:321
[4] pointer(x::Adjoint{Int64, UnitRange{Int64}})
@ Base ./abstractarray.jl:1240
[5] unsafe_convert(#unused#::Type{Ptr{Int64}}, A::LoopVectorization.LowDimArray{(false, true), Int64, 2, Adjoint{Int64, UnitRange{Int64}}})
@ LoopVectorization ~/.julia/packages/LoopVectorization/5ukqQ/src/broadcast.jl:63
[6] pointer(x::LoopVectorization.LowDimArray{(false, true), Int64, 2, Adjoint{Int64, UnitRange{Int64}}})
@ Base ./abstractarray.jl:1240
[7] memory_reference
@ ~/.julia/packages/LayoutPointers/qGkBo/src/stridedpointers.jl:21 [inlined]
[8] memory_reference
@ ~/.julia/packages/LayoutPointers/qGkBo/src/stridedpointers.jl:18 [inlined]
[9] memory_reference
@ ~/.julia/packages/LoopVectorization/5ukqQ/src/broadcast.jl:197 [inlined]
[10] stridedpointer_preserve
@ ~/.julia/packages/LayoutPointers/qGkBo/src/stridedpointers.jl:100 [inlined]
[11] macro expansion
@ ~/.julia/packages/LoopVectorization/5ukqQ/src/broadcast.jl:671 [inlined]
[12] vmaterialize!
@ ~/.julia/packages/LoopVectorization/5ukqQ/src/broadcast.jl:671 [inlined]
[13] vmaterialize!
@ ~/.julia/packages/LoopVectorization/5ukqQ/src/broadcast.jl:757 [inlined]
[14] _materialize!
@ ~/.julia/packages/StrideArrays/lTVQX/src/broadcast.jl:205 [inlined]
[15] materialize!(dest::StrideArray{Float64, 2, (1, 2), Tuple{Int64, Int64}, Tuple{Nothing, Nothing}, Tuple{StaticInt{1}, StaticInt{1}}, Vector{Float64}}, bc::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{2}, Nothing, typeof(*), Tuple{UnitRange{Int64}, Adjoint{Int64, UnitRange{Int64}}}})
@ StrideArrays ~/.julia/packages/StrideArrays/lTVQX/src/broadcast.jl:212
[16] top-level scope
@ In[37]:5
#+end_example
:END:
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.