# LoopVectorization.vsum : invalid index: 4 x VectorizationBase.Vec

**URL:** <https://discourse.julialang.org/t/loopvectorization-vsum-invalid-index-4-x-vectorizationbase-vec/118297>\
**Category:** General Usage\
**Tags:** loopvectorization\
**Created:** [August 17, 2024, 2:43am UTC](https://discourse.julialang.org/t/loopvectorization-vsum-invalid-index-4-x-vectorizationbase-vec/118297 "2024-08-17T02:43:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jar1](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@jar1](https://discourse.julialang.org/u/jar1)\
**Post date:** [August 17, 2024, 2:43am UTC](https://discourse.julialang.org/t/loopvectorization-vsum-invalid-index-4-x-vectorizationbase-vec/118297/1 "2024-08-17T02:43:18Z")

</div>

What’s wrong here?

```julia
using LoopVectorization
let n = 10000, k = 3, A = rand(n, k)
    sum(1:n) do i
        A[i,1]
    end # ok
    vsum(1:n) do i
        A[i,1]
    end
    #= 
    ERROR: ArgumentError: invalid index: 4 x VectorizationBase.Vec{4, Int64}
VectorizationBase.Vec{4, Int64}<1, 2, 3, 4>
VectorizationBase.Vec{4, Int64}<5, 6, 7, 8>
VectorizationBase.Vec{4, Int64}<9, 10, 11, 12>
VectorizationBase.Vec{4, Int64}<13, 14, 15, 16> of type VectorizationBase.VecUnroll{3, 4, Int64, VectorizationBase.Vec{4, Int64}}
     =#
end

Julia 1.10.3
LoopVectorization v0.12.171

```

---

<div class="post-metadata">

**Author:** ![eldee](https://avatars.discourse-cdn.com/v4/letter/e/b5a626/32.png) [@eldee](https://discourse.julialang.org/u/eldee)\
**Post date:** [August 17, 2024, 2:06pm UTC](https://discourse.julialang.org/t/loopvectorization-vsum-invalid-index-4-x-vectorizationbase-vec/118297/2 "2024-08-17T14:06:15Z")

</div>

Not an answer to your question, but possibly related strangeness: `vsum(i -> A[i], 1:n)`, which should be equivalent, does run, but yields a (slightly) wrong result.

```julia-repl
julia> s = sum(@view(A[:, 1])); # assumed to be correct

julia> vsum(@view(A[:, 1])) ≈ s
true

julia> vsum(@view(A[1:n])) ≈ s
true

julia> vsum(i->A[i], 1:n) ≈ s
false

julia> vsum(i->A[i, 1], 1:n)
ERROR: ArgumentError: invalid index: 4 x VectorizationBase.Vec{4, Int64}
...
```
