[SingleSource/Vectorizer] Add runtime checks tests for nested loops

This patch adds tests for nested loops like this:

  for (int i = 0; i < N; i++) {
    for (int j = 0; j < N; j++) {
      a[(i * (N + 1)) + j] += b[(i * N) + j];
    }
  }

where we generate runtime checks for the inner loop that do not
currently get hoisted above the outer loop.

Differential Revision: https://reviews.llvm.org/D154719
3 files changed