// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --include-generated-funcs
// Check that the CHECK lines are generated for clang-generated functions
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fopenmp %s -emit-llvm -o - | FileCheck --check-prefix=OMP %s
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu %s -emit-llvm -o - | FileCheck --check-prefix=NOOMP %s

const int size = 1024 * 1024 * 32;

double A[size];

void foo(void);

int main(void) {
  int i = 0;

#pragma omp parallel for
  for (i = 0; i < size; ++i) {
    A[i] = 0.0;
  }

  foo();

  return 0;
}

void foo(void) {
  int i = 0;

#pragma omp parallel for
  for (i = 0; i < size; ++i) {
    A[i] = 1.0;
  }
}
// OMP-LABEL: @main(
// OMP-NEXT:  entry:
// OMP-NEXT:    [[RETVAL:%.*]] = alloca i32, align 4
// OMP-NEXT:    [[I:%.*]] = alloca i32, align 4
// OMP-NEXT:    store i32 0, ptr [[RETVAL]], align 4
// OMP-NEXT:    store i32 0, ptr [[I]], align 4
// OMP-NEXT:    call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr @[[GLOB2:[0-9]+]], i32 0, ptr @main.omp_outlined)
// OMP-NEXT:    call void @foo()
// OMP-NEXT:    ret i32 0
//
//
// OMP-LABEL: @main.omp_outlined(
// OMP-NEXT:  entry:
// OMP-NEXT:    [[DOTGLOBAL_TID__ADDR:%.*]] = alloca ptr, align 8
// OMP-NEXT:    [[DOTBOUND_TID__ADDR:%.*]] = alloca ptr, align 8
// OMP-NEXT:    [[DOTOMP_IV:%.*]] = alloca i32, align 4
// OMP-NEXT:    [[TMP:%.*]] = alloca i32, align 4
// OMP-NEXT:    [[DOTOMP_LB:%.*]] = alloca i32, align 4
// OMP-NEXT:    [[DOTOMP_UB:%.*]] = alloca i32, align 4
// OMP-NEXT:    [[DOTOMP_STRIDE:%.*]] = alloca i32, align 4
// OMP-NEXT:    [[DOTOMP_IS_LAST:%.*]] = alloca i32, align 4
// OMP-NEXT:    [[I:%.*]] = alloca i32, align 4
// OMP-NEXT:    store ptr [[DOTGLOBAL_TID_:%.*]], ptr [[DOTGLOBAL_TID__ADDR]], align 8
// OMP-NEXT:    store ptr [[DOTBOUND_TID_:%.*]], ptr [[DOTBOUND_TID__ADDR]], align 8
// OMP-NEXT:    store i32 0, ptr [[DOTOMP_LB]], align 4
// OMP-NEXT:    store i32 33554431, ptr [[DOTOMP_UB]], align 4
// OMP-NEXT:    store i32 1, ptr [[DOTOMP_STRIDE]], align 4
// OMP-NEXT:    store i32 0, ptr [[DOTOMP_IS_LAST]], align 4
// OMP-NEXT:    [[TMP0:%.*]] = load ptr, ptr [[DOTGLOBAL_TID__ADDR]], align 8
// OMP-NEXT:    [[TMP1:%.*]] = load i32, ptr [[TMP0]], align 4
// OMP-NEXT:    call void @__kmpc_for_static_init_4(ptr @[[GLOB1:[0-9]+]], i32 [[TMP1]], i32 34, ptr [[DOTOMP_IS_LAST]], ptr [[DOTOMP_LB]], ptr [[DOTOMP_UB]], ptr [[DOTOMP_STRIDE]], i32 1, i32 1)
// OMP-NEXT:    [[TMP2:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4
// OMP-NEXT:    [[CMP:%.*]] = icmp sgt i32 [[TMP2]], 33554431
// OMP-NEXT:    br i1 [[CMP]], label [[COND_TRUE:%.*]], label [[COND_FALSE:%.*]]
// OMP:       cond.true:
// OMP-NEXT:    br label [[COND_END:%.*]]
// OMP:       cond.false:
// OMP-NEXT:    [[TMP3:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4
// OMP-NEXT:    br label [[COND_END]]
// OMP:       cond.end:
// OMP-NEXT:    [[COND:%.*]] = phi i32 [ 33554431, [[COND_TRUE]] ], [ [[TMP3]], [[COND_FALSE]] ]
// OMP-NEXT:    store i32 [[COND]], ptr [[DOTOMP_UB]], align 4
// OMP-NEXT:    [[TMP4:%.*]] = load i32, ptr [[DOTOMP_LB]], align 4
// OMP-NEXT:    store i32 [[TMP4]], ptr [[DOTOMP_IV]], align 4
// OMP-NEXT:    br label [[OMP_INNER_FOR_COND:%.*]]
// OMP:       omp.inner.for.cond:
// OMP-NEXT:    [[TMP5:%.*]] = load i32, ptr [[DOTOMP_IV]], align 4
// OMP-NEXT:    [[TMP6:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4
// OMP-NEXT:    [[CMP1:%.*]] = icmp sle i32 [[TMP5]], [[TMP6]]
// OMP-NEXT:    br i1 [[CMP1]], label [[OMP_INNER_FOR_BODY:%.*]], label [[OMP_INNER_FOR_END:%.*]]
// OMP:       omp.inner.for.body:
// OMP-NEXT:    [[TMP7:%.*]] = load i32, ptr [[DOTOMP_IV]], align 4
// OMP-NEXT:    [[MUL:%.*]] = mul nsw i32 [[TMP7]], 1
// OMP-NEXT:    [[ADD:%.*]] = add nsw i32 0, [[MUL]]
// OMP-NEXT:    store i32 [[ADD]], ptr [[I]], align 4
// OMP-NEXT:    [[TMP8:%.*]] = load i32, ptr [[I]], align 4
// OMP-NEXT:    [[IDXPROM:%.*]] = sext i32 [[TMP8]] to i64
// OMP-NEXT:    [[ARRAYIDX:%.*]] = getelementptr inbounds [33554432 x double], ptr @A, i64 0, i64 [[IDXPROM]]
// OMP-NEXT:    store double 0.000000e+00, ptr [[ARRAYIDX]], align 8
// OMP-NEXT:    br label [[OMP_BODY_CONTINUE:%.*]]
// OMP:       omp.body.continue:
// OMP-NEXT:    br label [[OMP_INNER_FOR_INC:%.*]]
// OMP:       omp.inner.for.inc:
// OMP-NEXT:    [[TMP9:%.*]] = load i32, ptr [[DOTOMP_IV]], align 4
// OMP-NEXT:    [[ADD2:%.*]] = add nsw i32 [[TMP9]], 1
// OMP-NEXT:    store i32 [[ADD2]], ptr [[DOTOMP_IV]], align 4
// OMP-NEXT:    br label [[OMP_INNER_FOR_COND]]
// OMP:       omp.inner.for.end:
// OMP-NEXT:    br label [[OMP_LOOP_EXIT:%.*]]
// OMP:       omp.loop.exit:
// OMP-NEXT:    call void @__kmpc_for_static_fini(ptr @[[GLOB1]], i32 [[TMP1]])
// OMP-NEXT:    ret void
//
//
// OMP-LABEL: @foo(
// OMP-NEXT:  entry:
// OMP-NEXT:    [[I:%.*]] = alloca i32, align 4
// OMP-NEXT:    store i32 0, ptr [[I]], align 4
// OMP-NEXT:    call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr @[[GLOB2]], i32 0, ptr @foo.omp_outlined)
// OMP-NEXT:    ret void
//
//
// OMP-LABEL: @foo.omp_outlined(
// OMP-NEXT:  entry:
// OMP-NEXT:    [[DOTGLOBAL_TID__ADDR:%.*]] = alloca ptr, align 8
// OMP-NEXT:    [[DOTBOUND_TID__ADDR:%.*]] = alloca ptr, align 8
// OMP-NEXT:    [[DOTOMP_IV:%.*]] = alloca i32, align 4
// OMP-NEXT:    [[TMP:%.*]] = alloca i32, align 4
// OMP-NEXT:    [[DOTOMP_LB:%.*]] = alloca i32, align 4
// OMP-NEXT:    [[DOTOMP_UB:%.*]] = alloca i32, align 4
// OMP-NEXT:    [[DOTOMP_STRIDE:%.*]] = alloca i32, align 4
// OMP-NEXT:    [[DOTOMP_IS_LAST:%.*]] = alloca i32, align 4
// OMP-NEXT:    [[I:%.*]] = alloca i32, align 4
// OMP-NEXT:    store ptr [[DOTGLOBAL_TID_:%.*]], ptr [[DOTGLOBAL_TID__ADDR]], align 8
// OMP-NEXT:    store ptr [[DOTBOUND_TID_:%.*]], ptr [[DOTBOUND_TID__ADDR]], align 8
// OMP-NEXT:    store i32 0, ptr [[DOTOMP_LB]], align 4
// OMP-NEXT:    store i32 33554431, ptr [[DOTOMP_UB]], align 4
// OMP-NEXT:    store i32 1, ptr [[DOTOMP_STRIDE]], align 4
// OMP-NEXT:    store i32 0, ptr [[DOTOMP_IS_LAST]], align 4
// OMP-NEXT:    [[TMP0:%.*]] = load ptr, ptr [[DOTGLOBAL_TID__ADDR]], align 8
// OMP-NEXT:    [[TMP1:%.*]] = load i32, ptr [[TMP0]], align 4
// OMP-NEXT:    call void @__kmpc_for_static_init_4(ptr @[[GLOB1]], i32 [[TMP1]], i32 34, ptr [[DOTOMP_IS_LAST]], ptr [[DOTOMP_LB]], ptr [[DOTOMP_UB]], ptr [[DOTOMP_STRIDE]], i32 1, i32 1)
// OMP-NEXT:    [[TMP2:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4
// OMP-NEXT:    [[CMP:%.*]] = icmp sgt i32 [[TMP2]], 33554431
// OMP-NEXT:    br i1 [[CMP]], label [[COND_TRUE:%.*]], label [[COND_FALSE:%.*]]
// OMP:       cond.true:
// OMP-NEXT:    br label [[COND_END:%.*]]
// OMP:       cond.false:
// OMP-NEXT:    [[TMP3:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4
// OMP-NEXT:    br label [[COND_END]]
// OMP:       cond.end:
// OMP-NEXT:    [[COND:%.*]] = phi i32 [ 33554431, [[COND_TRUE]] ], [ [[TMP3]], [[COND_FALSE]] ]
// OMP-NEXT:    store i32 [[COND]], ptr [[DOTOMP_UB]], align 4
// OMP-NEXT:    [[TMP4:%.*]] = load i32, ptr [[DOTOMP_LB]], align 4
// OMP-NEXT:    store i32 [[TMP4]], ptr [[DOTOMP_IV]], align 4
// OMP-NEXT:    br label [[OMP_INNER_FOR_COND:%.*]]
// OMP:       omp.inner.for.cond:
// OMP-NEXT:    [[TMP5:%.*]] = load i32, ptr [[DOTOMP_IV]], align 4
// OMP-NEXT:    [[TMP6:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4
// OMP-NEXT:    [[CMP1:%.*]] = icmp sle i32 [[TMP5]], [[TMP6]]
// OMP-NEXT:    br i1 [[CMP1]], label [[OMP_INNER_FOR_BODY:%.*]], label [[OMP_INNER_FOR_END:%.*]]
// OMP:       omp.inner.for.body:
// OMP-NEXT:    [[TMP7:%.*]] = load i32, ptr [[DOTOMP_IV]], align 4
// OMP-NEXT:    [[MUL:%.*]] = mul nsw i32 [[TMP7]], 1
// OMP-NEXT:    [[ADD:%.*]] = add nsw i32 0, [[MUL]]
// OMP-NEXT:    store i32 [[ADD]], ptr [[I]], align 4
// OMP-NEXT:    [[TMP8:%.*]] = load i32, ptr [[I]], align 4
// OMP-NEXT:    [[IDXPROM:%.*]] = sext i32 [[TMP8]] to i64
// OMP-NEXT:    [[ARRAYIDX:%.*]] = getelementptr inbounds [33554432 x double], ptr @A, i64 0, i64 [[IDXPROM]]
// OMP-NEXT:    store double 1.000000e+00, ptr [[ARRAYIDX]], align 8
// OMP-NEXT:    br label [[OMP_BODY_CONTINUE:%.*]]
// OMP:       omp.body.continue:
// OMP-NEXT:    br label [[OMP_INNER_FOR_INC:%.*]]
// OMP:       omp.inner.for.inc:
// OMP-NEXT:    [[TMP9:%.*]] = load i32, ptr [[DOTOMP_IV]], align 4
// OMP-NEXT:    [[ADD2:%.*]] = add nsw i32 [[TMP9]], 1
// OMP-NEXT:    store i32 [[ADD2]], ptr [[DOTOMP_IV]], align 4
// OMP-NEXT:    br label [[OMP_INNER_FOR_COND]]
// OMP:       omp.inner.for.end:
// OMP-NEXT:    br label [[OMP_LOOP_EXIT:%.*]]
// OMP:       omp.loop.exit:
// OMP-NEXT:    call void @__kmpc_for_static_fini(ptr @[[GLOB1]], i32 [[TMP1]])
// OMP-NEXT:    ret void
//
//
// NOOMP-LABEL: @main(
// NOOMP-NEXT:  entry:
// NOOMP-NEXT:    [[RETVAL:%.*]] = alloca i32, align 4
// NOOMP-NEXT:    [[I:%.*]] = alloca i32, align 4
// NOOMP-NEXT:    store i32 0, ptr [[RETVAL]], align 4
// NOOMP-NEXT:    store i32 0, ptr [[I]], align 4
// NOOMP-NEXT:    store i32 0, ptr [[I]], align 4
// NOOMP-NEXT:    br label [[FOR_COND:%.*]]
// NOOMP:       for.cond:
// NOOMP-NEXT:    [[TMP0:%.*]] = load i32, ptr [[I]], align 4
// NOOMP-NEXT:    [[CMP:%.*]] = icmp slt i32 [[TMP0]], 33554432
// NOOMP-NEXT:    br i1 [[CMP]], label [[FOR_BODY:%.*]], label [[FOR_END:%.*]]
// NOOMP:       for.body:
// NOOMP-NEXT:    [[TMP1:%.*]] = load i32, ptr [[I]], align 4
// NOOMP-NEXT:    [[IDXPROM:%.*]] = sext i32 [[TMP1]] to i64
// NOOMP-NEXT:    [[ARRAYIDX:%.*]] = getelementptr inbounds [33554432 x double], ptr @A, i64 0, i64 [[IDXPROM]]
// NOOMP-NEXT:    store double 0.000000e+00, ptr [[ARRAYIDX]], align 8
// NOOMP-NEXT:    br label [[FOR_INC:%.*]]
// NOOMP:       for.inc:
// NOOMP-NEXT:    [[TMP2:%.*]] = load i32, ptr [[I]], align 4
// NOOMP-NEXT:    [[INC:%.*]] = add nsw i32 [[TMP2]], 1
// NOOMP-NEXT:    store i32 [[INC]], ptr [[I]], align 4
// NOOMP-NEXT:    br label [[FOR_COND]], !llvm.loop [[LOOP2:![0-9]+]]
// NOOMP:       for.end:
// NOOMP-NEXT:    call void @foo()
// NOOMP-NEXT:    ret i32 0
//
//
// NOOMP-LABEL: @foo(
// NOOMP-NEXT:  entry:
// NOOMP-NEXT:    [[I:%.*]] = alloca i32, align 4
// NOOMP-NEXT:    store i32 0, ptr [[I]], align 4
// NOOMP-NEXT:    store i32 0, ptr [[I]], align 4
// NOOMP-NEXT:    br label [[FOR_COND:%.*]]
// NOOMP:       for.cond:
// NOOMP-NEXT:    [[TMP0:%.*]] = load i32, ptr [[I]], align 4
// NOOMP-NEXT:    [[CMP:%.*]] = icmp slt i32 [[TMP0]], 33554432
// NOOMP-NEXT:    br i1 [[CMP]], label [[FOR_BODY:%.*]], label [[FOR_END:%.*]]
// NOOMP:       for.body:
// NOOMP-NEXT:    [[TMP1:%.*]] = load i32, ptr [[I]], align 4
// NOOMP-NEXT:    [[IDXPROM:%.*]] = sext i32 [[TMP1]] to i64
// NOOMP-NEXT:    [[ARRAYIDX:%.*]] = getelementptr inbounds [33554432 x double], ptr @A, i64 0, i64 [[IDXPROM]]
// NOOMP-NEXT:    store double 1.000000e+00, ptr [[ARRAYIDX]], align 8
// NOOMP-NEXT:    br label [[FOR_INC:%.*]]
// NOOMP:       for.inc:
// NOOMP-NEXT:    [[TMP2:%.*]] = load i32, ptr [[I]], align 4
// NOOMP-NEXT:    [[INC:%.*]] = add nsw i32 [[TMP2]], 1
// NOOMP-NEXT:    store i32 [[INC]], ptr [[I]], align 4
// NOOMP-NEXT:    br label [[FOR_COND]], !llvm.loop [[LOOP4:![0-9]+]]
// NOOMP:       for.end:
// NOOMP-NEXT:    ret void
//
