I actually just test-ran the Collatz conjecture with Swift and C++ over the weekend. The results seem to find C++ being faster in this particular cases both with optimizations and without.
There seems to be an error in your benchmark comparison. You seem to be using 32-bit (int) integers in C++ and 64bit (Int) integers in Swift. The larger cache miss rate from the 2X bigger array might make up most most of the time difference with all optimizations on.
There was this same error in a tiny prime sieve micro-benchmark that someone posted in Apple's Swift developer forum.