well, I would create simd aware types that have operators overloaded. And then 
I would cast to these type to use simd.
    
    
    # let's assume `vec' is the type with simd enabled
    
    
    var myArray1 = [1,2,3,4,5,6,7,8]
    var myArray2 = [1,1,1,1,1,1,1,1]
    
    let view1 = cast[ptr array[2, vec[int, 4]]](myArray1.addr)
    let view2 = cast[ptr array[2, vec[int, 4]]](myArray2.addr)
    
    view1[0] += view2[1]
    view1[1] += view2[0]
    
    

But then you would still need to create the simd types. No idea there.

Reply via email to