// RUN: %clang_cc1 -verify -fopenmp -x c++ -triple x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s
// RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -emit-pch -o %t %s
// RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s

// RUN: %clang_cc1 -verify -fopenmp-simd -x c++ -triple x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck --check-prefix SIMD-ONLY0 %s
// RUN: %clang_cc1 -fopenmp-simd -x c++ -std=c++11 -triple x86_64-unknown-unknown -emit-pch -o %t %s
// RUN: %clang_cc1 -fopenmp-simd -x c++ -triple x86_64-unknown-unknown -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck --check-prefix SIMD-ONLY0 %s
// SIMD-ONLY0-NOT: {{__kmpc|__tgt}}
// expected-no-diagnostics
#ifndef HEADER
#define HEADER

void foo();
void bar();

// CHECK: define{{.*}} void @{{.*}}baz{{.*}}(i32 noundef %n)
void baz(int n) {
  static float a[10];
  static double b;
  // CHECK: call i8* @llvm.stacksave()
  // CHECK: [[A_BUF_SIZE:%.+]] = mul nuw i64 10, [[NUM_ELEMS:%[^,]+]]

  // float a_buffer[10][n];
  // CHECK: [[A_BUF:%.+]] = alloca float, i64 [[A_BUF_SIZE]],

  // double b_buffer[10];
  // CHECK: [[B_BUF:%.+]] = alloca double, i64 10,
#pragma omp for simd reduction(inscan, +:a[:n], b)
  for (int i = 0; i < 10; ++i) {
    // CHECK: call void @__kmpc_for_static_init_4(
    // CHECK: call i8* @llvm.stacksave()
    // CHECK: store float 0.000000e+00, float* %
    // CHECK: store double 0.000000e+00, double* [[B_PRIV_ADDR:%.+]],
    // CHECK: br label %[[DISPATCH:[^,]+]]
    // CHECK: [[INPUT_PHASE:.+]]:
    // CHECK: call void @{{.+}}foo{{.+}}()

    // a_buffer[i][0..n] = a_priv[[0..n];
    // CHECK: [[BASE_IDX_I:%.+]] = load i32, i32* [[IV_ADDR:%.+]],
    // CHECK: [[BASE_IDX:%.+]] = zext i32 [[BASE_IDX_I]] to i64
    // CHECK: [[IDX:%.+]] = mul nsw i64 [[BASE_IDX]], [[NUM_ELEMS]]
    // CHECK: [[A_BUF_IDX:%.+]] = getelementptr inbounds float, float* [[A_BUF]], i64 [[IDX]]
    // CHECK: [[A_PRIV:%.+]] = getelementptr inbounds [10 x float], [10 x float]* [[A_PRIV_ADDR:%.+]], i64 0, i64 0
    // CHECK: [[BYTES:%.+]] = mul nuw i64 [[NUM_ELEMS:%.+]], 4
    // CHECK: [[DEST:%.+]] = bitcast float* [[A_BUF_IDX]] to i8*
    // CHECK: [[SRC:%.+]] = bitcast float* [[A_PRIV]] to i8*
    // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* {{.*}}[[DEST]], i8* {{.*}}[[SRC]], i64 [[BYTES]], i1 false)

    // b_buffer[i] = b_priv;
    // CHECK: [[B_BUF_IDX:%.+]] = getelementptr inbounds double, double* [[B_BUF]], i64 [[BASE_IDX]]
    // CHECK: [[B_PRIV:%.+]] = load double, double* [[B_PRIV_ADDR]],
    // CHECK: store double [[B_PRIV]], double* [[B_BUF_IDX]],
    // CHECK: br label %[[LOOP_CONTINUE:.+]]

    // CHECK: [[DISPATCH]]:
    // CHECK: br label %[[INPUT_PHASE]]
    // CHECK: [[LOOP_CONTINUE]]:
    // CHECK: call void @llvm.stackrestore(i8* %
    // CHECK: call void @__kmpc_for_static_fini(
    // CHECK: call void @__kmpc_barrier(
    foo();
#pragma omp scan inclusive(a[:n], b)
    // CHECK: [[LOG2_10:%.+]] = call double @llvm.log2.f64(double 1.000000e+01)
    // CHECK: [[CEIL_LOG2_10:%.+]] = call double @llvm.ceil.f64(double [[LOG2_10]])
    // CHECK: [[CEIL_LOG2_10_INT:%.+]] = fptoui double [[CEIL_LOG2_10]] to i32
    // CHECK: br label %[[OUTER_BODY:[^,]+]]
    // CHECK: [[OUTER_BODY]]:
    // CHECK: [[K:%.+]] = phi i32 [ 0, %{{.+}} ], [ [[K_NEXT:%.+]], %{{.+}} ]
    // CHECK: [[K2POW:%.+]] = phi i64 [ 1, %{{.+}} ], [ [[K2POW_NEXT:%.+]], %{{.+}} ]
    // CHECK: [[CMP:%.+]] = icmp uge i64 9, [[K2POW]]
    // CHECK: br i1 [[CMP]], label %[[INNER_BODY:[^,]+]], label %[[INNER_EXIT:[^,]+]]
    // CHECK: [[INNER_BODY]]:
    // CHECK: [[I:%.+]] = phi i64 [ 9, %[[OUTER_BODY]] ], [ [[I_PREV:%.+]], %{{.+}} ]

    // a_buffer[i] += a_buffer[i-pow(2, k)];
    // CHECK: [[IDX:%.+]] = mul nsw i64 [[I]], [[NUM_ELEMS]]
    // CHECK: [[A_BUF_IDX:%.+]] = getelementptr inbounds float, float* [[A_BUF]], i64 [[IDX]]
    // CHECK: [[IDX_SUB_K2POW:%.+]] = sub nuw i64 [[I]], [[K2POW]]
    // CHECK: [[IDX:%.+]] = mul nsw i64 [[IDX_SUB_K2POW]], [[NUM_ELEMS]]
    // CHECK: [[A_BUF_IDX_SUB_K2POW:%.+]] = getelementptr inbounds float, float* [[A_BUF]], i64 [[IDX]]
    // CHECK: [[B_BUF_IDX:%.+]] = getelementptr inbounds double, double* [[B_BUF]], i64 [[I]]
    // CHECK: [[IDX_SUB_K2POW:%.+]] = sub nuw i64 [[I]], [[K2POW]]
    // CHECK: [[B_BUF_IDX_SUB_K2POW:%.+]] = getelementptr inbounds double, double* [[B_BUF]], i64 [[IDX_SUB_K2POW]]
    // CHECK: [[A_BUF_END:%.+]] = getelementptr float, float* [[A_BUF_IDX]], i64 [[NUM_ELEMS]]
    // CHECK: [[ISEMPTY:%.+]] = icmp eq float* [[A_BUF_IDX]], [[A_BUF_END]]
    // CHECK: br i1 [[ISEMPTY]], label %[[RED_DONE:[^,]+]], label %[[RED_BODY:[^,]+]]
    // CHECK: [[RED_BODY]]:
    // CHECK: [[A_BUF_IDX_SUB_K2POW_ELEM:%.+]] = phi float* [ [[A_BUF_IDX_SUB_K2POW]], %[[INNER_BODY]] ], [ [[A_BUF_IDX_SUB_K2POW_NEXT:%.+]], %[[RED_BODY]] ]
    // CHECK: [[A_BUF_IDX_ELEM:%.+]] = phi float* [ [[A_BUF_IDX]], %[[INNER_BODY]] ], [ [[A_BUF_IDX_NEXT:%.+]], %[[RED_BODY]] ]
    // CHECK: [[A_BUF_IDX_VAL:%.+]] = load float, float* [[A_BUF_IDX_ELEM]],
    // CHECK: [[A_BUF_IDX_SUB_K2POW_VAL:%.+]] = load float, float* [[A_BUF_IDX_SUB_K2POW_ELEM]],
    // CHECK: [[RED:%.+]] = fadd float [[A_BUF_IDX_VAL]], [[A_BUF_IDX_SUB_K2POW_VAL]]
    // CHECK: store float [[RED]], float* [[A_BUF_IDX_ELEM]],
    // CHECK: [[A_BUF_IDX_NEXT]] = getelementptr float, float* [[A_BUF_IDX_ELEM]], i32 1
    // CHECK: [[A_BUF_IDX_SUB_K2POW_NEXT]] = getelementptr float, float* [[A_BUF_IDX_SUB_K2POW_ELEM]], i32 1
    // CHECK: [[DONE:%.+]] = icmp eq float* [[A_BUF_IDX_NEXT]], [[A_BUF_END]]
    // CHECK: br i1 [[DONE]], label %[[RED_DONE]], label %[[RED_BODY]]
    // CHECK: [[RED_DONE]]:

    // b_buffer[i] += b_buffer[i-pow(2, k)];
    // CHECK: [[B_BUF_IDX_VAL:%.+]] = load double, double* [[B_BUF_IDX]],
    // CHECK: [[B_BUF_IDX_SUB_K2POW_VAL:%.+]] = load double, double* [[B_BUF_IDX_SUB_K2POW]],
    // CHECK: [[RED:%.+]] = fadd double [[B_BUF_IDX_VAL]], [[B_BUF_IDX_SUB_K2POW_VAL]]
    // CHECK: store double [[RED]], double* [[B_BUF_IDX]],

    // --i;
    // CHECK: [[I_PREV:%.+]] = sub nuw i64 [[I]], 1
    // CHECK: [[CMP:%.+]] = icmp uge i64 [[I_PREV]], [[K2POW]]
    // CHECK: br i1 [[CMP]], label %[[INNER_BODY]], label %[[INNER_EXIT]]
    // CHECK: [[INNER_EXIT]]:

    // ++k;
    // CHECK: [[K_NEXT]] = add nuw i32 [[K]], 1
    // k2pow <<= 1;
    // CHECK: [[K2POW_NEXT]] = shl nuw i64 [[K2POW]], 1
    // CHECK: [[CMP:%.+]] = icmp ne i32 [[K_NEXT]], [[CEIL_LOG2_10_INT]]
    // CHECK: br i1 [[CMP]], label %[[OUTER_BODY]], label %[[OUTER_EXIT:[^,]+]]
    // CHECK: [[OUTER_EXIT]]:
    bar();
    // CHECK: call void @__kmpc_for_static_init_4(
    // CHECK: call i8* @llvm.stacksave()
    // CHECK: store float 0.000000e+00, float* %
    // CHECK: store double 0.000000e+00, double* [[B_PRIV_ADDR:%.+]],
    // CHECK: br label %[[DISPATCH:[^,]+]]

    // Skip the before scan body.
    // CHECK: call void @{{.+}}foo{{.+}}()

    // CHECK: [[EXIT_INSCAN:[^,]+]]:
    // CHECK: br label %[[LOOP_CONTINUE:[^,]+]]

    // CHECK: [[DISPATCH]]:
    // a_priv[[0..n] = a_buffer[i][0..n];
    // CHECK: [[BASE_IDX_I:%.+]] = load i32, i32* [[IV_ADDR:%.+]],
    // CHECK: [[BASE_IDX:%.+]] = zext i32 [[BASE_IDX_I]] to i64
    // CHECK: [[IDX:%.+]] = mul nsw i64 [[BASE_IDX]], [[NUM_ELEMS]]
    // CHECK: [[A_BUF_IDX:%.+]] = getelementptr inbounds float, float* [[A_BUF]], i64 [[IDX]]
    // CHECK: [[A_PRIV:%.+]] = getelementptr inbounds [10 x float], [10 x float]* [[A_PRIV_ADDR:%.+]], i64 0, i64 0
    // CHECK: [[BYTES:%.+]] = mul nuw i64 [[NUM_ELEMS:%.+]], 4
    // CHECK: [[DEST:%.+]] = bitcast float* [[A_PRIV]] to i8*
    // CHECK: [[SRC:%.+]] = bitcast float* [[A_BUF_IDX]] to i8*
    // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* {{.*}}[[DEST]], i8* {{.*}}[[SRC]], i64 [[BYTES]], i1 false)

    // b_priv = b_buffer[i];
    // CHECK: [[B_BUF_IDX:%.+]] = getelementptr inbounds double, double* [[B_BUF]], i64 [[BASE_IDX]]
    // CHECK: [[B_BUF_IDX_VAL:%.+]] = load double, double* [[B_BUF_IDX]],
    // CHECK: store double [[B_BUF_IDX_VAL]], double* [[B_PRIV_ADDR]],
    // CHECK: br label %[[SCAN_PHASE:[^,]+]]

    // CHECK: [[SCAN_PHASE]]:
    // CHECK: call void @{{.+}}bar{{.+}}()
    // CHECK: br label %[[EXIT_INSCAN]]

    // CHECK: [[LOOP_CONTINUE]]:
    // CHECK: call void @llvm.stackrestore(i8* %
    // CHECK: call void @__kmpc_for_static_fini(
    // CHECK: call void @llvm.stackrestore(i8*
    // CHECK: call void @__kmpc_barrier(
  }

  // CHECK: call i8* @llvm.stacksave()
  // CHECK: [[A_BUF_SIZE:%.+]] = mul nuw i64 10, [[NUM_ELEMS:%[^,]+]]

  // float a_buffer[10][n];
  // CHECK: [[A_BUF:%.+]] = alloca float, i64 [[A_BUF_SIZE]],

  // double b_buffer[10];
  // CHECK: [[B_BUF:%.+]] = alloca double, i64 10,
#pragma omp for simd reduction(inscan, +:a[:n], b)
  for (int i = 0; i < 10; ++i) {
    // CHECK: call void @__kmpc_for_static_init_4(
    // CHECK: call i8* @llvm.stacksave()
    // CHECK: store float 0.000000e+00, float* %
    // CHECK: store double 0.000000e+00, double* [[B_PRIV_ADDR:%.+]],
    // CHECK: br label %[[DISPATCH:[^,]+]]

    // Skip the before scan body.
    // CHECK: call void @{{.+}}foo{{.+}}()

    // CHECK: [[EXIT_INSCAN:[^,]+]]:

    // a_buffer[i][0..n] = a_priv[[0..n];
    // CHECK: [[BASE_IDX_I:%.+]] = load i32, i32* [[IV_ADDR:%.+]],
    // CHECK: [[BASE_IDX:%.+]] = zext i32 [[BASE_IDX_I]] to i64
    // CHECK: [[IDX:%.+]] = mul nsw i64 [[BASE_IDX]], [[NUM_ELEMS]]
    // CHECK: [[A_BUF_IDX:%.+]] = getelementptr inbounds float, float* [[A_BUF]], i64 [[IDX]]
    // CHECK: [[A_PRIV:%.+]] = getelementptr inbounds [10 x float], [10 x float]* [[A_PRIV_ADDR:%.+]], i64 0, i64 0
    // CHECK: [[BYTES:%.+]] = mul nuw i64 [[NUM_ELEMS:%.+]], 4
    // CHECK: [[DEST:%.+]] = bitcast float* [[A_BUF_IDX]] to i8*
    // CHECK: [[SRC:%.+]] = bitcast float* [[A_PRIV]] to i8*
    // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* {{.*}}[[DEST]], i8* {{.*}}[[SRC]], i64 [[BYTES]], i1 false)

    // b_buffer[i] = b_priv;
    // CHECK: [[B_BUF_IDX:%.+]] = getelementptr inbounds double, double* [[B_BUF]], i64 [[BASE_IDX]]
    // CHECK: [[B_PRIV:%.+]] = load double, double* [[B_PRIV_ADDR]],
    // CHECK: store double [[B_PRIV]], double* [[B_BUF_IDX]],
    // CHECK: br label %[[LOOP_CONTINUE:[^,]+]]

    // CHECK: [[DISPATCH]]:
    // CHECK: br label %[[INPUT_PHASE:[^,]+]]

    // CHECK: [[INPUT_PHASE]]:
    // CHECK: call void @{{.+}}bar{{.+}}()
    // CHECK: br label %[[EXIT_INSCAN]]

    // CHECK: [[LOOP_CONTINUE]]:
    // CHECK: call void @llvm.stackrestore(i8* %
    // CHECK: call void @__kmpc_for_static_fini(
    // CHECK: call void @__kmpc_barrier(
    foo();
#pragma omp scan exclusive(a[:n], b)
    // CHECK: [[LOG2_10:%.+]] = call double @llvm.log2.f64(double 1.000000e+01)
    // CHECK: [[CEIL_LOG2_10:%.+]] = call double @llvm.ceil.f64(double [[LOG2_10]])
    // CHECK: [[CEIL_LOG2_10_INT:%.+]] = fptoui double [[CEIL_LOG2_10]] to i32
    // CHECK: br label %[[OUTER_BODY:[^,]+]]
    // CHECK: [[OUTER_BODY]]:
    // CHECK: [[K:%.+]] = phi i32 [ 0, %{{.+}} ], [ [[K_NEXT:%.+]], %{{.+}} ]
    // CHECK: [[K2POW:%.+]] = phi i64 [ 1, %{{.+}} ], [ [[K2POW_NEXT:%.+]], %{{.+}} ]
    // CHECK: [[CMP:%.+]] = icmp uge i64 9, [[K2POW]]
    // CHECK: br i1 [[CMP]], label %[[INNER_BODY:[^,]+]], label %[[INNER_EXIT:[^,]+]]
    // CHECK: [[INNER_BODY]]:
    // CHECK: [[I:%.+]] = phi i64 [ 9, %[[OUTER_BODY]] ], [ [[I_PREV:%.+]], %{{.+}} ]

    // a_buffer[i] += a_buffer[i-pow(2, k)];
    // CHECK: [[IDX:%.+]] = mul nsw i64 [[I]], [[NUM_ELEMS]]
    // CHECK: [[A_BUF_IDX:%.+]] = getelementptr inbounds float, float* [[A_BUF]], i64 [[IDX]]
    // CHECK: [[IDX_SUB_K2POW:%.+]] = sub nuw i64 [[I]], [[K2POW]]
    // CHECK: [[IDX:%.+]] = mul nsw i64 [[IDX_SUB_K2POW]], [[NUM_ELEMS]]
    // CHECK: [[A_BUF_IDX_SUB_K2POW:%.+]] = getelementptr inbounds float, float* [[A_BUF]], i64 [[IDX]]
    // CHECK: [[B_BUF_IDX:%.+]] = getelementptr inbounds double, double* [[B_BUF]], i64 [[I]]
    // CHECK: [[IDX_SUB_K2POW:%.+]] = sub nuw i64 [[I]], [[K2POW]]
    // CHECK: [[B_BUF_IDX_SUB_K2POW:%.+]] = getelementptr inbounds double, double* [[B_BUF]], i64 [[IDX_SUB_K2POW]]
    // CHECK: [[A_BUF_END:%.+]] = getelementptr float, float* [[A_BUF_IDX]], i64 [[NUM_ELEMS]]
    // CHECK: [[ISEMPTY:%.+]] = icmp eq float* [[A_BUF_IDX]], [[A_BUF_END]]
    // CHECK: br i1 [[ISEMPTY]], label %[[RED_DONE:[^,]+]], label %[[RED_BODY:[^,]+]]
    // CHECK: [[RED_BODY]]:
    // CHECK: [[A_BUF_IDX_SUB_K2POW_ELEM:%.+]] = phi float* [ [[A_BUF_IDX_SUB_K2POW]], %[[INNER_BODY]] ], [ [[A_BUF_IDX_SUB_K2POW_NEXT:%.+]], %[[RED_BODY]] ]
    // CHECK: [[A_BUF_IDX_ELEM:%.+]] = phi float* [ [[A_BUF_IDX]], %[[INNER_BODY]] ], [ [[A_BUF_IDX_NEXT:%.+]], %[[RED_BODY]] ]
    // CHECK: [[A_BUF_IDX_VAL:%.+]] = load float, float* [[A_BUF_IDX_ELEM]],
    // CHECK: [[A_BUF_IDX_SUB_K2POW_VAL:%.+]] = load float, float* [[A_BUF_IDX_SUB_K2POW_ELEM]],
    // CHECK: [[RED:%.+]] = fadd float [[A_BUF_IDX_VAL]], [[A_BUF_IDX_SUB_K2POW_VAL]]
    // CHECK: store float [[RED]], float* [[A_BUF_IDX_ELEM]],
    // CHECK: [[A_BUF_IDX_NEXT]] = getelementptr float, float* [[A_BUF_IDX_ELEM]], i32 1
    // CHECK: [[A_BUF_IDX_SUB_K2POW_NEXT]] = getelementptr float, float* [[A_BUF_IDX_SUB_K2POW_ELEM]], i32 1
    // CHECK: [[DONE:%.+]] = icmp eq float* [[A_BUF_IDX_NEXT]], [[A_BUF_END]]
    // CHECK: br i1 [[DONE]], label %[[RED_DONE]], label %[[RED_BODY]]
    // CHECK: [[RED_DONE]]:

    // b_buffer[i] += b_buffer[i-pow(2, k)];
    // CHECK: [[B_BUF_IDX_VAL:%.+]] = load double, double* [[B_BUF_IDX]],
    // CHECK: [[B_BUF_IDX_SUB_K2POW_VAL:%.+]] = load double, double* [[B_BUF_IDX_SUB_K2POW]],
    // CHECK: [[RED:%.+]] = fadd double [[B_BUF_IDX_VAL]], [[B_BUF_IDX_SUB_K2POW_VAL]]
    // CHECK: store double [[RED]], double* [[B_BUF_IDX]],

    // --i;
    // CHECK: [[I_PREV:%.+]] = sub nuw i64 [[I]], 1
    // CHECK: [[CMP:%.+]] = icmp uge i64 [[I_PREV]], [[K2POW]]
    // CHECK: br i1 [[CMP]], label %[[INNER_BODY]], label %[[INNER_EXIT]]
    // CHECK: [[INNER_EXIT]]:

    // ++k;
    // CHECK: [[K_NEXT]] = add nuw i32 [[K]], 1
    // k2pow <<= 1;
    // CHECK: [[K2POW_NEXT]] = shl nuw i64 [[K2POW]], 1
    // CHECK: [[CMP:%.+]] = icmp ne i32 [[K_NEXT]], [[CEIL_LOG2_10_INT]]
    // CHECK: br i1 [[CMP]], label %[[OUTER_BODY]], label %[[OUTER_EXIT:[^,]+]]
    // CHECK: [[OUTER_EXIT]]:
    bar();
    // CHECK: call void @__kmpc_for_static_init_4(
    // CHECK: call i8* @llvm.stacksave()
    // CHECK: store float 0.000000e+00, float* %
    // CHECK: store double 0.000000e+00, double* [[B_PRIV_ADDR:%.+]],
    // CHECK: br label %[[DISPATCH:[^,]+]]

    // CHECK: [[SCAN_PHASE:.+]]:
    // CHECK: call void @{{.+}}foo{{.+}}()
    // CHECK: br label %[[LOOP_CONTINUE:.+]]

    // CHECK: [[DISPATCH]]:
    // if (i >0)
    //   a_priv[[0..n] = a_buffer[i-1][0..n];
    // CHECK: [[BASE_IDX_I:%.+]] = load i32, i32* [[IV_ADDR:%.+]],
    // CHECK: [[BASE_IDX:%.+]] = zext i32 [[BASE_IDX_I]] to i64
    // CHECK: [[CMP:%.+]] = icmp eq i64 [[BASE_IDX]], 0
    // CHECK: br i1 [[CMP]], label %[[IF_DONE:[^,]+]], label %[[IF_THEN:[^,]+]]
    // CHECK: [[IF_THEN]]:
    // CHECK: [[BASE_IDX_SUB_1:%.+]] = sub nuw i64 [[BASE_IDX]], 1
    // CHECK: [[IDX:%.+]] = mul nsw i64 [[BASE_IDX_SUB_1]], [[NUM_ELEMS]]
    // CHECK: [[A_BUF_IDX:%.+]] = getelementptr inbounds float, float* [[A_BUF]], i64 [[IDX]]
    // CHECK: [[A_PRIV:%.+]] = getelementptr inbounds [10 x float], [10 x float]* [[A_PRIV_ADDR:%.+]], i64 0, i64 0
    // CHECK: [[BYTES:%.+]] = mul nuw i64 [[NUM_ELEMS:%.+]], 4
    // CHECK: [[DEST:%.+]] = bitcast float* [[A_PRIV]] to i8*
    // CHECK: [[SRC:%.+]] = bitcast float* [[A_BUF_IDX]] to i8*
    // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* {{.*}}[[DEST]], i8* {{.*}}[[SRC]], i64 [[BYTES]], i1 false)

    // b_priv = b_buffer[i];
    // CHECK: [[B_BUF_IDX:%.+]] = getelementptr inbounds double, double* [[B_BUF]], i64 [[BASE_IDX_SUB_1]]
    // CHECK: [[B_BUF_IDX_VAL:%.+]] = load double, double* [[B_BUF_IDX]],
    // CHECK: store double [[B_BUF_IDX_VAL]], double* [[B_PRIV_ADDR]],
    // CHECK: br label %[[SCAN_PHASE]]

    // CHECK: [[LOOP_CONTINUE]]:
    // CHECK: call void @llvm.stackrestore(i8* %
    // CHECK: call void @__kmpc_for_static_fini(
    // CHECK: call void @llvm.stackrestore(i8*
    // CHECK: call void @__kmpc_barrier(
  }
}

#endif
// CHECK: !{!"llvm.loop.vectorize.enable", i1 true}

