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.
