1 // RUN: %clang_cc1 -fopenmp -x c++ %s -verify -debug-info-kind=limited -triple x86_64-unknown-unknown -emit-llvm -o - | FileCheck %s
2 
3 // RUN: %clang_cc1 -fopenmp-simd -x c++ %s -verify -debug-info-kind=limited -triple x86_64-unknown-unknown -emit-llvm -o - | FileCheck --check-prefix SIMD-ONLY0 %s
4 // SIMD-ONLY0-NOT: {{__kmpc|__tgt}}
5 // expected-no-diagnostics
6 
7 void a() {
8   float _Complex b;
9   // CHECK: call void (%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...) @__kmpc_fork_call(%struct.ident_t* {{.*}}, i32 1, void (i32*, i32*, ...)* bitcast (void (i32*, i32*, i64)* [[OUTLINED:@.+]] to void (i32*, i32*, ...)*), i64 %{{.*}})
10 #pragma omp parallel firstprivate(b)
11   ;
12 }
13 
14 // CHECK: define internal void [[OUTLINED_DEBUG:@.+]](i32* {{.*}}, i32* {{.*}}, <2 x float> {{.*}})
15 
16 // CHECK: define internal void [[OUTLINED]](i32* {{.*}}, i32* {{.*}}, i64 [[B_VAL:%.+]])
17 // CHECK: [[B_ADDR:%.+]] = alloca i64,
18 // CHECK: store i64 [[B_VAL]], i64* [[B_ADDR]],
19 // CHECK: [[CONV:%.+]] = bitcast i64* [[B_ADDR]] to { float, float }*,
20 // CHECK: [[BC:%.+]] = bitcast { float, float }* [[CONV]] to <2 x float>*,
21 // CHECK: [[B_VAL:%.+]] = load <2 x float>, <2 x float>* [[BC]],
22 // CHECK: call void [[OUTLINED_DEBUG]](i32* %{{.+}}, i32* %{{.+}}, <2 x float> [[B_VAL]])
23