The Swift version is doing overflow checking. What happens if you change a[i] + b[i] to a[i] &+ b[i]?
a[i] + b[i]
a[i] &+ b[i]