ok thanks! and so I should define my SIMD-able function like
function vadd!{N,T}(xs::Vector{T}, ys::Vector{T}, ::Type{Vec{N,T}})
@assert length(ys) == length(xs)
@assert length(xs) % N == 0
@inbounds for i in 1:N:length(xs)
xv = vload(Vec{N,T}, xs, i)
yv = vload(Vec{N,T}, ys, i)
xv += yv
vstore(xv, xs, i)
endend
i.e. using vload() and vstore() methods?
On Thursday, 13 October 2016 15:29:50 UTC+2, Valentin Churavy wrote:
>
> If you want explicit simd the best way right now is the great SIMD.jl
> package https://github.com/eschnett/SIMD.jl it is builds on top of
> VecElement.
>
> In many cases we can perform automatic vectorisation, but you have to
> start Julia with -O3
>
> On Thursday, 13 October 2016 22:15:00 UTC+9, Florian Oswald wrote:
>>
>> i see on the docs
>> http://docs.julialang.org/en/release-0.5/stdlib/simd-types/?highlight=SIMD
>> that there is a vecElement that is build for SIMD support. I don't
>> understand if as a user I should construct vecElement arrays and hope for
>> some SIMD optimization? thanks.
>>
>>