Lines Matching refs:BLOCKS
5 // RUN: %clang_cc1 -verify -fopenmp -x c++ -fblocks -DBLOCKS -triple x86_64-apple-darwin10 -emit-llvm %s -o - | FileCheck -check-prefix=BLOCKS %s
119 #elif defined(BLOCKS)
120 // BLOCKS: [[G:@.+]] = global double
121 // BLOCKS-LABEL: @main
122 // BLOCKS: call void {{%.+}}(i8
124 // BLOCKS: define{{.*}} internal{{.*}} void {{.+}}(i8*
125 // BLOCKS: call void {{.+}} @__kmpc_fork_call({{.+}}, i32 0, {{.+}}* [[OMP_REGION:@.+]] to {{.+}})
129 // BLOCKS: define{{.*}} internal{{.*}} void [[OMP_REGION]](i32* noalias %{{.+}}, i32* noalias %{{.+}})
130 // BLOCKS: [[G_PRIVATE_ADDR:%.+]] = alloca double,
133 // BLOCKS: [[RED_LIST:%.+]] = alloca [2 x i8*],
135 // BLOCKS: store double 0.0{{.+}}, double* [[G_PRIVATE_ADDR]]
138 // BLOCKS: call void @__kmpc_for_static_init_4(
139 // BLOCKS: store double 1.0{{.+}}, double* [[G_PRIVATE_ADDR]],
140 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
141 // BLOCKS: double* [[G_PRIVATE_ADDR]]
142 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
143 // BLOCKS: call void {{%.+}}(i8
144 // BLOCKS: call void @__kmpc_for_static_fini(
146 // BLOCKS: [[G_PRIV_REF:%.+]] = getelementptr inbounds [2 x i8*], [2 x i8*]* [[RED_LIST]], i64 0, i64 0
147 // BLOCKS: [[BITCAST:%.+]] = bitcast double* [[G_PRIVATE_ADDR]] to i8*
148 // BLOCKS: store i8* [[BITCAST]], i8** [[G_PRIV_REF]],
149 // BLOCKS: call i32 @__kmpc_reduce(
150 // BLOCKS: switch i32 %{{.+}}, label %[[REDUCTION_DONE:.+]] [
151 // BLOCKS: i32 1, label %[[CASE1:.+]]
152 // BLOCKS: i32 2, label %[[CASE2:.+]]
153 // BLOCKS: [[CASE1]]
154 // BLOCKS: [[G_VAL:%.+]] = load double, double* [[G]]
155 // BLOCKS: [[G_PRIV_VAL:%.+]] = load double, double* [[G_PRIVATE_ADDR]]
156 // BLOCKS: [[ADD:%.+]] = fadd double [[G_VAL]], [[G_PRIV_VAL]]
157 // BLOCKS: store double [[ADD]], double* [[G]]
158 // BLOCKS: call void @__kmpc_end_reduce(
159 // BLOCKS: br label %[[REDUCTION_DONE]]
160 // BLOCKS: [[CASE2]]
161 // BLOCKS: [[G_PRIV_VAL:%.+]] = load double, double* [[G_PRIVATE_ADDR]]
162 // BLOCKS: fadd double
163 // BLOCKS: cmpxchg i64*
164 // BLOCKS: call void @__kmpc_end_reduce(
165 // BLOCKS: br label %[[REDUCTION_DONE]]
166 // BLOCKS: [[REDUCTION_DONE]]
167 // BLOCKS: ret void
169 // BLOCKS: define {{.+}} void {{@.+}}(i8*
172 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
173 // BLOCKS: store double 2.0{{.+}}, double*
174 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
175 // BLOCKS: ret