JuliaSIMD / JuliaSIMD/LoopVectorization.jl
[bug] incorrect result
- Lingua principale
- Julia
- Stelle
- 789
- Fork
- 73
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
```julia
function _snparray_ax_additive!(out, s::Matrix{UInt8}, v)
fill!(out, zero(UInt8))
k = size(s, 1)
@avx for j ∈ eachindex(v)
for l in 1:k
block = s[(j-1)*size(s, 1) + (l-1) + 1]
# i = 4 * (l-1) + 1
Aij = block & 3
i = 4 * (l-1) + 1
out[i] += ((Aij >= 2) + (Aij >= 3)) * v[j]
# i = 4 * (l-1) + 2
Aij = (block >> 2) & 3
i = 4 * (l-1) + 2
out[i] += ((Aij >= 2) + (Aij >= 3)) * v[j]
# i = 4 * (l-1) + 3
Aij = (block >> 4) & 3
i = 4 * (l-1) + 3
out[i] += ((Aij >= 2) + (Aij >= 3)) * v[j]
# i = 4 * (l-1) + 4
Aij = (block >> 6) & 3
i = 4 * (l-1) + 4
out[i] += ((Aij >= 2) + (Aij >= 3)) * v[j]
end
end
out
end
```
The result is different from the code without `@avx`.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Start with the supplied _snparray_ax_additive! reproducer and compare its output with and without @avx. Investigate the @avx vectorization path; done means both forms produce the same result, with a regression test covering this case.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- julia
- Ambito
- performance
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 35/100