"But it adds some checks and GC, so Swift also exhibits a serious slowdown, though well within 2x of C++."
Swift does not employ GC, it uses ARC. While that may be a form of GC, it doesn't suffer from the same "slowdown" that GC would in this context because ARC is doing exactly what your base case (C++) does at run-time (ARC is a compile-time tool).
I think if you're going to be doing benchmarks, you should have basic knowledge on how each system works first.