Lines Matching full:blocks
5 // RUN: %clang_cc1 -verify -fopenmp -fnoopenmp-use-tls -x c++ -fblocks -DBLOCKS -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck -check-prefix=BLOCKS %s
12 // RUN: %clang_cc1 -verify -fopenmp -x c++ -fblocks -DBLOCKS -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck -check-prefix=TLS-BLOCKS %s
138 #elif defined(BLOCKS)
139 // BLOCKS: [[G:@.+]] = global i{{[0-9]+}} 1212,
140 // BLOCKS-LABEL: @main
141 // BLOCKS: call {{.*}}void {{%.+}}(i8
143 // TLS-BLOCKS: [[G:@.+]] = {{.*}}thread_local {{.*}}global i{{[0-9]+}} 1212,
144 // TLS-BLOCKS-LABEL: @main
145 // TLS-BLOCKS: call {{.*}}void {{%.+}}(i8
147 // BLOCKS: define{{.*}} internal{{.*}} void {{.+}}(i8*
148 // BLOCKS: call {{.*}}void {{.+}} @__kmpc_fork_call({{.+}}, i32 0, {{.+}}* [[OMP_REGION:@.+]] to {{.+}})
150 // TLS-BLOCKS: [[G_CPY_VAL:%.+]] = call{{( cxx_fast_tlscc)?}} i{{[0-9]+}}* [[G_CTOR:@.+]]()
151 // TLS-BLOCKS: call {{.*}}void {{.+}} @__kmpc_fork_call({{.+}}, i32 1, {{.+}}* [[OMP_REGION:@.+]] to {{.+}}, i32* [[G_CPY_VAL]])
155 // BLOCKS: define{{.*}} internal{{.*}} void [[OMP_REGION]](i32* noalias %{{.+}}, i32* noalias %{{.+}})
156 // TLS-BLOCKS: define{{.*}} internal{{.*}} void [[OMP_REGION]](i32* noalias %{{.+}}, i32* noalias %{{.+}}, i32* dereferenceable(4) %{{.+}})
159 // BLOCKS: call {{.*}}i8* @__kmpc_threadprivate_cached({{.+}} [[G]]
160 // BLOCKS: ptrtoint i{{[0-9]+}}* %{{.+}} to i{{[0-9]+}}
161 // BLOCKS: icmp ne i{{[0-9]+}} ptrtoint (i{{[0-9]+}}* [[G]] to i{{[0-9]+}}), %{{.+}}
162 // BLOCKS: br i1 %{{.+}}, label %[[NOT_MASTER:.+]], label %[[DONE:.+]]
163 // BLOCKS: [[NOT_MASTER]]
164 // BLOCKS: load i{{[0-9]+}}, i{{[0-9]+}}* [[G]], align 128
165 // BLOCKS: store volatile i{{[0-9]+}} %{{.+}}, i{{[0-9]+}}* %{{.+}}, align 128
166 // BLOCKS: [[DONE]]
168 // TLS-BLOCKS-DAG: [[G_CAPTURE_SRC:%.+]] = load i{{[0-9]+}}*, i{{[0-9]+}}** %
169 // TLS-BLOCKS-DAG: [[G_CAPTURE_DST:%.+]] = call{{( cxx_fast_tlscc)?}} i{{[0-9]+}}* [[G_CTOR]]()
170 // TLS-BLOCKS-DAG: [[G_CAPTURE_SRCC:%.+]] = ptrtoint i{{[0-9]+}}* [[G_CAPTURE_SRC]] to i{{[0-9]+}}
171 // TLS-BLOCKS-DAG: [[G_CAPTURE_DSTC:%.+]] = ptrtoint i{{[0-9]+}}* [[G_CAPTURE_DST]] to i{{[0-9]+}}
172 // TLS-BLOCKS: icmp ne i{{[0-9]+}} {{%.+}}, {{%.+}}
173 // TLS-BLOCKS: br i1 %{{.+}}, label %[[NOT_MASTER:.+]], label %[[DONE:.+]]
174 // TLS-BLOCKS: [[NOT_MASTER]]
175 // TLS-BLOCKS: load i{{[0-9]+}}, i{{[0-9]+}}* [[G_CAPTURE_SRC]],
176 // TLS-BLOCKS: store volatile i{{[0-9]+}} %{{.+}}, i{{[0-9]+}}* [[G_CAPTURE_DST]], align 128
177 // TLS-BLOCKS: [[DONE]]
179 // BLOCKS: call {{.*}}void @__kmpc_barrier(
180 // TLS-BLOCKS: call {{.*}}void @__kmpc_barrier(
182 // BLOCKS: store volatile i{{[0-9]+}} 1, i{{[0-9]+}}*
183 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
184 // BLOCKS: call {{.*}}void {{%.+}}(i8
186 // TLS-BLOCKS: [[G_CAPTURE_DST:%.+]] = call{{( cxx_fast_tlscc)?}} i{{[0-9]+}}* [[G_CTOR]]()
187 // TLS-BLOCKS: store volatile i{{[0-9]+}} 1, i{{[0-9]+}}* [[G_CAPTURE_DST]]
188 // TLS-BLOCKS-NOT: [[G]]{{[[^:word:]]}}
189 // TLS-BLOCKS: call {{.*}}void {{%.+}}(i8
191 // TLS-BLOCKS: define {{.*}}i{{[0-9]+}}* [[G_CTOR]]()
192 // TLS-BLOCKS: ret i{{[0-9]+}}* [[G]]
193 // TLS-BLOCKS: }
195 // BLOCKS: define {{.+}} void {{@.+}}(i8*
196 // TLS-BLOCKS: define {{.+}} void {{@.+}}(i8*
198 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
199 // BLOCKS: call {{.*}}i8* @__kmpc_threadprivate_cached({{.+}} [[G]]
200 // BLOCKS: store volatile i{{[0-9]+}} 2, i{{[0-9]+}}*
201 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
202 // BLOCKS: ret
204 // TLS-BLOCKS-NOT: [[G]]{{[[^:word:]]}}
205 // TLS-BLOCKS: [[G_CAPTURE_DST:%.+]] = call{{( cxx_fast_tlscc)?}} i{{[0-9]+}}* [[G_CTOR]]()
206 // TLS-BLOCKS: store volatile i{{[0-9]+}} 2, i{{[0-9]+}}* [[G_CAPTURE_DST]]
207 // TLS-BLOCKS-NOT: [[G]]{{[[^:word:]]}}
208 // TLS-BLOCKS: ret