1; RUN: opt < %s -S -openmpopt        | FileCheck %s
2; RUN: opt < %s -S -passes=openmpopt | FileCheck %s
3; RUN: opt < %s -S -openmpopt        -openmp-ir-builder-optimistic-attributes | FileCheck %s --check-prefix=OPTIMISTIC
4; RUN: opt < %s -S -passes=openmpopt -openmp-ir-builder-optimistic-attributes | FileCheck %s --check-prefix=OPTIMISTIC
5;
6; TODO: Not all omp_XXXX methods are known to the OpenMPIRBuilder/OpenMPOpt.
7;
8target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
9
10%struct.omp_lock_t = type { i8* }
11%struct.omp_nest_lock_t = type { i8* }
12%struct.ident_t = type { i32, i32, i32, i32, i8* }
13
14define void @call_all(i32 %schedule, %struct.omp_lock_t* %lock, i32 %lock_hint, %struct.omp_nest_lock_t* %nest_lock, i32 %i, i8* %s, i64 %st, i8* %vp, double %d, i32 %proc_bind, i64 %allocator_handle, i8* %cp, i64 %event_handle, i32 %pause_resource) {
15entry:
16  %schedule.addr = alloca i32, align 4
17  %lock.addr = alloca %struct.omp_lock_t*, align 8
18  %lock_hint.addr = alloca i32, align 4
19  %nest_lock.addr = alloca %struct.omp_nest_lock_t*, align 8
20  %i.addr = alloca i32, align 4
21  %s.addr = alloca i8*, align 8
22  %st.addr = alloca i64, align 8
23  %vp.addr = alloca i8*, align 8
24  %d.addr = alloca double, align 8
25  %proc_bind.addr = alloca i32, align 4
26  %allocator_handle.addr = alloca i64, align 8
27  %cp.addr = alloca i8*, align 8
28  %event_handle.addr = alloca i64, align 8
29  %pause_resource.addr = alloca i32, align 4
30  store i32 %schedule, i32* %schedule.addr, align 4
31  store %struct.omp_lock_t* %lock, %struct.omp_lock_t** %lock.addr, align 8
32  store i32 %lock_hint, i32* %lock_hint.addr, align 4
33  store %struct.omp_nest_lock_t* %nest_lock, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
34  store i32 %i, i32* %i.addr, align 4
35  store i8* %s, i8** %s.addr, align 8
36  store i64 %st, i64* %st.addr, align 8
37  store i8* %vp, i8** %vp.addr, align 8
38  store double %d, double* %d.addr, align 8
39  store i32 %proc_bind, i32* %proc_bind.addr, align 4
40  store i64 %allocator_handle, i64* %allocator_handle.addr, align 8
41  store i8* %cp, i8** %cp.addr, align 8
42  store i64 %event_handle, i64* %event_handle.addr, align 8
43  store i32 %pause_resource, i32* %pause_resource.addr, align 4
44  call void @omp_set_num_threads(i32 0)
45  call void @omp_set_dynamic(i32 0)
46  call void @omp_set_nested(i32 0)
47  call void @omp_set_max_active_levels(i32 0)
48  %0 = load i32, i32* %schedule.addr, align 4
49  call void @omp_set_schedule(i32 %0, i32 0)
50  %call = call i32 @omp_get_num_threads()
51  store i32 %call, i32* %i.addr, align 4
52  %1 = load i32, i32* %i.addr, align 4
53  call void @use_int(i32 %1)
54  %call1 = call i32 @omp_get_dynamic()
55  store i32 %call1, i32* %i.addr, align 4
56  %2 = load i32, i32* %i.addr, align 4
57  call void @use_int(i32 %2)
58  %call2 = call i32 @omp_get_nested()
59  store i32 %call2, i32* %i.addr, align 4
60  %3 = load i32, i32* %i.addr, align 4
61  call void @use_int(i32 %3)
62  %call3 = call i32 @omp_get_max_threads()
63  store i32 %call3, i32* %i.addr, align 4
64  %4 = load i32, i32* %i.addr, align 4
65  call void @use_int(i32 %4)
66  %call4 = call i32 @omp_get_thread_num()
67  store i32 %call4, i32* %i.addr, align 4
68  %5 = load i32, i32* %i.addr, align 4
69  call void @use_int(i32 %5)
70  %call5 = call i32 @omp_get_num_procs()
71  store i32 %call5, i32* %i.addr, align 4
72  %6 = load i32, i32* %i.addr, align 4
73  call void @use_int(i32 %6)
74  %call6 = call i32 @omp_in_parallel()
75  store i32 %call6, i32* %i.addr, align 4
76  %7 = load i32, i32* %i.addr, align 4
77  call void @use_int(i32 %7)
78  %call7 = call i32 @omp_in_final()
79  store i32 %call7, i32* %i.addr, align 4
80  %8 = load i32, i32* %i.addr, align 4
81  call void @use_int(i32 %8)
82  %call8 = call i32 @omp_get_active_level()
83  store i32 %call8, i32* %i.addr, align 4
84  %9 = load i32, i32* %i.addr, align 4
85  call void @use_int(i32 %9)
86  %call9 = call i32 @omp_get_level()
87  store i32 %call9, i32* %i.addr, align 4
88  %10 = load i32, i32* %i.addr, align 4
89  call void @use_int(i32 %10)
90  %call10 = call i32 @omp_get_ancestor_thread_num(i32 0)
91  store i32 %call10, i32* %i.addr, align 4
92  %11 = load i32, i32* %i.addr, align 4
93  call void @use_int(i32 %11)
94  %call11 = call i32 @omp_get_team_size(i32 0)
95  store i32 %call11, i32* %i.addr, align 4
96  %12 = load i32, i32* %i.addr, align 4
97  call void @use_int(i32 %12)
98  %call12 = call i32 @omp_get_thread_limit()
99  store i32 %call12, i32* %i.addr, align 4
100  %13 = load i32, i32* %i.addr, align 4
101  call void @use_int(i32 %13)
102  %call13 = call i32 @omp_get_max_active_levels()
103  store i32 %call13, i32* %i.addr, align 4
104  %14 = load i32, i32* %i.addr, align 4
105  call void @use_int(i32 %14)
106  call void @omp_get_schedule(i32* %schedule.addr, i32* %i.addr)
107  %call14 = call i32 @omp_get_max_task_priority()
108  store i32 %call14, i32* %i.addr, align 4
109  %15 = load i32, i32* %i.addr, align 4
110  call void @use_int(i32 %15)
111  %16 = load %struct.omp_lock_t*, %struct.omp_lock_t** %lock.addr, align 8
112  call void @omp_init_lock(%struct.omp_lock_t* %16)
113  %17 = load %struct.omp_lock_t*, %struct.omp_lock_t** %lock.addr, align 8
114  call void @omp_set_lock(%struct.omp_lock_t* %17)
115  %18 = load %struct.omp_lock_t*, %struct.omp_lock_t** %lock.addr, align 8
116  call void @omp_unset_lock(%struct.omp_lock_t* %18)
117  %19 = load %struct.omp_lock_t*, %struct.omp_lock_t** %lock.addr, align 8
118  call void @omp_destroy_lock(%struct.omp_lock_t* %19)
119  %20 = load %struct.omp_lock_t*, %struct.omp_lock_t** %lock.addr, align 8
120  %call15 = call i32 @omp_test_lock(%struct.omp_lock_t* %20)
121  store i32 %call15, i32* %i.addr, align 4
122  %21 = load i32, i32* %i.addr, align 4
123  call void @use_int(i32 %21)
124  %22 = load %struct.omp_nest_lock_t*, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
125  call void @omp_init_nest_lock(%struct.omp_nest_lock_t* %22)
126  %23 = load %struct.omp_nest_lock_t*, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
127  call void @omp_set_nest_lock(%struct.omp_nest_lock_t* %23)
128  %24 = load %struct.omp_nest_lock_t*, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
129  call void @omp_unset_nest_lock(%struct.omp_nest_lock_t* %24)
130  %25 = load %struct.omp_nest_lock_t*, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
131  call void @omp_destroy_nest_lock(%struct.omp_nest_lock_t* %25)
132  %26 = load %struct.omp_nest_lock_t*, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
133  %call16 = call i32 @omp_test_nest_lock(%struct.omp_nest_lock_t* %26)
134  store i32 %call16, i32* %i.addr, align 4
135  %27 = load i32, i32* %i.addr, align 4
136  call void @use_int(i32 %27)
137  %28 = load %struct.omp_lock_t*, %struct.omp_lock_t** %lock.addr, align 8
138  %29 = load i32, i32* %lock_hint.addr, align 4
139  call void @omp_init_lock_with_hint(%struct.omp_lock_t* %28, i32 %29)
140  %30 = load %struct.omp_nest_lock_t*, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
141  %31 = load i32, i32* %lock_hint.addr, align 4
142  call void @omp_init_nest_lock_with_hint(%struct.omp_nest_lock_t* %30, i32 %31)
143  %call17 = call double @omp_get_wtime()
144  store double %call17, double* %d.addr, align 8
145  %32 = load double, double* %d.addr, align 8
146  call void @use_double(double %32)
147  %call18 = call double @omp_get_wtick()
148  store double %call18, double* %d.addr, align 8
149  %33 = load double, double* %d.addr, align 8
150  call void @use_double(double %33)
151  %call19 = call i32 @omp_get_default_device()
152  store i32 %call19, i32* %i.addr, align 4
153  %34 = load i32, i32* %i.addr, align 4
154  call void @use_int(i32 %34)
155  call void @omp_set_default_device(i32 0)
156  %call20 = call i32 @omp_is_initial_device()
157  store i32 %call20, i32* %i.addr, align 4
158  %35 = load i32, i32* %i.addr, align 4
159  call void @use_int(i32 %35)
160  %call21 = call i32 @omp_get_num_devices()
161  store i32 %call21, i32* %i.addr, align 4
162  %36 = load i32, i32* %i.addr, align 4
163  call void @use_int(i32 %36)
164  %call22 = call i32 @omp_get_num_teams()
165  store i32 %call22, i32* %i.addr, align 4
166  %37 = load i32, i32* %i.addr, align 4
167  call void @use_int(i32 %37)
168  %call23 = call i32 @omp_get_team_num()
169  store i32 %call23, i32* %i.addr, align 4
170  %38 = load i32, i32* %i.addr, align 4
171  call void @use_int(i32 %38)
172  %call24 = call i32 @omp_get_cancellation()
173  store i32 %call24, i32* %i.addr, align 4
174  %39 = load i32, i32* %i.addr, align 4
175  call void @use_int(i32 %39)
176  %call25 = call i32 @omp_get_initial_device()
177  store i32 %call25, i32* %i.addr, align 4
178  %40 = load i32, i32* %i.addr, align 4
179  call void @use_int(i32 %40)
180  %41 = load i64, i64* %st.addr, align 8
181  %42 = load i32, i32* %i.addr, align 4
182  %call26 = call i8* @omp_target_alloc(i64 %41, i32 %42)
183  store i8* %call26, i8** %vp.addr, align 8
184  %43 = load i8*, i8** %vp.addr, align 8
185  call void @use_voidptr(i8* %43)
186  %44 = load i8*, i8** %vp.addr, align 8
187  %45 = load i32, i32* %i.addr, align 4
188  call void @omp_target_free(i8* %44, i32 %45)
189  %46 = load i8*, i8** %vp.addr, align 8
190  %47 = load i32, i32* %i.addr, align 4
191  %call27 = call i32 @omp_target_is_present(i8* %46, i32 %47)
192  store i32 %call27, i32* %i.addr, align 4
193  %48 = load i32, i32* %i.addr, align 4
194  call void @use_int(i32 %48)
195  %49 = load i8*, i8** %vp.addr, align 8
196  %50 = load i8*, i8** %vp.addr, align 8
197  %51 = load i64, i64* %st.addr, align 8
198  %52 = load i64, i64* %st.addr, align 8
199  %53 = load i64, i64* %st.addr, align 8
200  %54 = load i32, i32* %i.addr, align 4
201  %55 = load i32, i32* %i.addr, align 4
202  %call28 = call i32 @omp_target_memcpy(i8* %49, i8* %50, i64 %51, i64 %52, i64 %53, i32 %54, i32 %55)
203  store i32 %call28, i32* %i.addr, align 4
204  %56 = load i32, i32* %i.addr, align 4
205  call void @use_int(i32 %56)
206  %57 = load i8*, i8** %vp.addr, align 8
207  %58 = load i8*, i8** %vp.addr, align 8
208  %59 = load i64, i64* %st.addr, align 8
209  %60 = load i64, i64* %st.addr, align 8
210  %61 = load i32, i32* %i.addr, align 4
211  %call29 = call i32 @omp_target_associate_ptr(i8* %57, i8* %58, i64 %59, i64 %60, i32 %61)
212  store i32 %call29, i32* %i.addr, align 4
213  %62 = load i32, i32* %i.addr, align 4
214  call void @use_int(i32 %62)
215  %63 = load i8*, i8** %vp.addr, align 8
216  %64 = load i32, i32* %i.addr, align 4
217  %call30 = call i32 @omp_target_disassociate_ptr(i8* %63, i32 %64)
218  store i32 %call30, i32* %i.addr, align 4
219  %65 = load i32, i32* %i.addr, align 4
220  call void @use_int(i32 %65)
221  %call31 = call i32 @omp_get_device_num()
222  store i32 %call31, i32* %i.addr, align 4
223  %66 = load i32, i32* %i.addr, align 4
224  call void @use_int(i32 %66)
225  %call32 = call i32 @omp_get_proc_bind()
226  store i32 %call32, i32* %proc_bind.addr, align 4
227  %call33 = call i32 @omp_get_num_places()
228  store i32 %call33, i32* %i.addr, align 4
229  %67 = load i32, i32* %i.addr, align 4
230  call void @use_int(i32 %67)
231  %call34 = call i32 @omp_get_place_num_procs(i32 0)
232  store i32 %call34, i32* %i.addr, align 4
233  %68 = load i32, i32* %i.addr, align 4
234  call void @use_int(i32 %68)
235  %69 = load i32, i32* %i.addr, align 4
236  call void @omp_get_place_proc_ids(i32 %69, i32* %i.addr)
237  %call35 = call i32 @omp_get_place_num()
238  store i32 %call35, i32* %i.addr, align 4
239  %70 = load i32, i32* %i.addr, align 4
240  call void @use_int(i32 %70)
241  %call36 = call i32 @omp_get_partition_num_places()
242  store i32 %call36, i32* %i.addr, align 4
243  %71 = load i32, i32* %i.addr, align 4
244  call void @use_int(i32 %71)
245  call void @omp_get_partition_place_nums(i32* %i.addr)
246  %72 = load i32, i32* %i.addr, align 4
247  %73 = load i32, i32* %i.addr, align 4
248  %74 = load i8*, i8** %vp.addr, align 8
249  %call37 = call i32 @omp_control_tool(i32 %72, i32 %73, i8* %74)
250  store i32 %call37, i32* %i.addr, align 4
251  %75 = load i32, i32* %i.addr, align 4
252  call void @use_int(i32 %75)
253  %76 = load i64, i64* %allocator_handle.addr, align 8
254  call void @omp_destroy_allocator(i64 %76)
255  %77 = load i64, i64* %allocator_handle.addr, align 8
256  call void @omp_set_default_allocator(i64 %77)
257  %call38 = call i64 @omp_get_default_allocator()
258  store i64 %call38, i64* %allocator_handle.addr, align 8
259  %78 = load i64, i64* %st.addr, align 8
260  %79 = load i64, i64* %allocator_handle.addr, align 8
261  %call39 = call i8* @omp_alloc(i64 %78, i64 %79)
262  store i8* %call39, i8** %vp.addr, align 8
263  %80 = load i8*, i8** %vp.addr, align 8
264  call void @use_voidptr(i8* %80)
265  %81 = load i8*, i8** %vp.addr, align 8
266  %82 = load i64, i64* %allocator_handle.addr, align 8
267  call void @omp_free(i8* %81, i64 %82)
268  %83 = load i64, i64* %st.addr, align 8
269  %84 = load i64, i64* %allocator_handle.addr, align 8
270  %call40 = call i8* @omp_alloc(i64 %83, i64 %84)
271  store i8* %call40, i8** %vp.addr, align 8
272  %85 = load i8*, i8** %vp.addr, align 8
273  call void @use_voidptr(i8* %85)
274  %86 = load i8*, i8** %vp.addr, align 8
275  %87 = load i64, i64* %allocator_handle.addr, align 8
276  call void @omp_free(i8* %86, i64 %87)
277  %88 = load i8*, i8** %s.addr, align 8
278  call void @ompc_set_affinity_format(i8* %88)
279  %89 = load i8*, i8** %cp.addr, align 8
280  %90 = load i64, i64* %st.addr, align 8
281  %call41 = call i64 @ompc_get_affinity_format(i8* %89, i64 %90)
282  store i64 %call41, i64* %st.addr, align 8
283  %91 = load i64, i64* %st.addr, align 8
284  call void @use_sizet(i64 %91)
285  %92 = load i8*, i8** %s.addr, align 8
286  call void @ompc_display_affinity(i8* %92)
287  %93 = load i8*, i8** %cp.addr, align 8
288  %94 = load i64, i64* %st.addr, align 8
289  %95 = load i8*, i8** %s.addr, align 8
290  %call42 = call i64 @ompc_capture_affinity(i8* %93, i64 %94, i8* %95)
291  store i64 %call42, i64* %st.addr, align 8
292  %96 = load i64, i64* %st.addr, align 8
293  call void @use_sizet(i64 %96)
294  %97 = load i64, i64* %event_handle.addr, align 8
295  call void @omp_fulfill_event(i64 %97)
296  %98 = load i32, i32* %pause_resource.addr, align 4
297  %99 = load i32, i32* %i.addr, align 4
298  %call43 = call i32 @omp_pause_resource(i32 %98, i32 %99)
299  store i32 %call43, i32* %i.addr, align 4
300  %100 = load i32, i32* %i.addr, align 4
301  call void @use_int(i32 %100)
302  %101 = load i32, i32* %pause_resource.addr, align 4
303  %call44 = call i32 @omp_pause_resource_all(i32 %101)
304  store i32 %call44, i32* %i.addr, align 4
305  %102 = load i32, i32* %i.addr, align 4
306  call void @use_int(i32 %102)
307  %call45 = call i32 @omp_get_supported_active_levels()
308  store i32 %call45, i32* %i.addr, align 4
309  %103 = load i32, i32* %i.addr, align 4
310  call void @use_int(i32 %103)
311  ret void
312}
313
314declare dso_local void @omp_set_num_threads(i32)
315
316declare dso_local void @omp_set_dynamic(i32)
317
318declare dso_local void @omp_set_nested(i32)
319
320declare dso_local void @omp_set_max_active_levels(i32)
321
322declare dso_local void @omp_set_schedule(i32, i32)
323
324declare dso_local i32 @omp_get_num_threads()
325
326declare dso_local void @use_int(i32)
327
328declare dso_local i32 @omp_get_dynamic()
329
330declare dso_local i32 @omp_get_nested()
331
332declare dso_local i32 @omp_get_max_threads()
333
334declare dso_local i32 @omp_get_thread_num()
335
336declare dso_local i32 @omp_get_num_procs()
337
338declare dso_local i32 @omp_in_parallel()
339
340declare dso_local i32 @omp_in_final()
341
342declare dso_local i32 @omp_get_active_level()
343
344declare dso_local i32 @omp_get_level()
345
346declare dso_local i32 @omp_get_ancestor_thread_num(i32)
347
348declare dso_local i32 @omp_get_team_size(i32)
349
350declare dso_local i32 @omp_get_thread_limit()
351
352declare dso_local i32 @omp_get_max_active_levels()
353
354declare dso_local void @omp_get_schedule(i32*, i32*)
355
356declare dso_local i32 @omp_get_max_task_priority()
357
358declare dso_local void @omp_init_lock(%struct.omp_lock_t*)
359
360declare dso_local void @omp_set_lock(%struct.omp_lock_t*)
361
362declare dso_local void @omp_unset_lock(%struct.omp_lock_t*)
363
364declare dso_local void @omp_destroy_lock(%struct.omp_lock_t*)
365
366declare dso_local i32 @omp_test_lock(%struct.omp_lock_t*)
367
368declare dso_local void @omp_init_nest_lock(%struct.omp_nest_lock_t*)
369
370declare dso_local void @omp_set_nest_lock(%struct.omp_nest_lock_t*)
371
372declare dso_local void @omp_unset_nest_lock(%struct.omp_nest_lock_t*)
373
374declare dso_local void @omp_destroy_nest_lock(%struct.omp_nest_lock_t*)
375
376declare dso_local i32 @omp_test_nest_lock(%struct.omp_nest_lock_t*)
377
378declare dso_local void @omp_init_lock_with_hint(%struct.omp_lock_t*, i32)
379
380declare dso_local void @omp_init_nest_lock_with_hint(%struct.omp_nest_lock_t*, i32)
381
382declare dso_local double @omp_get_wtime()
383
384declare dso_local void @use_double(double)
385
386declare dso_local double @omp_get_wtick()
387
388declare dso_local i32 @omp_get_default_device()
389
390declare dso_local void @omp_set_default_device(i32)
391
392declare dso_local i32 @omp_is_initial_device()
393
394declare dso_local i32 @omp_get_num_devices()
395
396declare dso_local i32 @omp_get_num_teams()
397
398declare dso_local i32 @omp_get_team_num()
399
400declare dso_local i32 @omp_get_cancellation()
401
402declare dso_local i32 @omp_get_initial_device()
403
404declare dso_local i8* @omp_target_alloc(i64, i32)
405
406declare dso_local void @use_voidptr(i8*)
407
408declare dso_local void @omp_target_free(i8*, i32)
409
410declare dso_local i32 @omp_target_is_present(i8*, i32)
411
412declare dso_local i32 @omp_target_memcpy(i8*, i8*, i64, i64, i64, i32, i32)
413
414declare dso_local i32 @omp_target_associate_ptr(i8*, i8*, i64, i64, i32)
415
416declare dso_local i32 @omp_target_disassociate_ptr(i8*, i32)
417
418declare dso_local i32 @omp_get_device_num()
419
420declare dso_local i32 @omp_get_proc_bind()
421
422declare dso_local i32 @omp_get_num_places()
423
424declare dso_local i32 @omp_get_place_num_procs(i32)
425
426declare dso_local void @omp_get_place_proc_ids(i32, i32*)
427
428declare dso_local i32 @omp_get_place_num()
429
430declare dso_local i32 @omp_get_partition_num_places()
431
432declare dso_local void @omp_get_partition_place_nums(i32*)
433
434declare dso_local i32 @omp_control_tool(i32, i32, i8*)
435
436declare dso_local void @omp_destroy_allocator(i64)
437
438declare dso_local void @omp_set_default_allocator(i64)
439
440declare dso_local i64 @omp_get_default_allocator()
441
442declare dso_local i8* @omp_alloc(i64, i64)
443
444declare dso_local void @omp_free(i8*, i64)
445
446declare dso_local void @ompc_set_affinity_format(i8*)
447
448declare dso_local i64 @ompc_get_affinity_format(i8*, i64)
449
450declare dso_local void @use_sizet(i64)
451
452declare dso_local void @ompc_display_affinity(i8*)
453
454declare dso_local i64 @ompc_capture_affinity(i8*, i64, i8*)
455
456declare dso_local void @omp_fulfill_event(i64)
457
458declare dso_local i32 @omp_pause_resource(i32, i32)
459
460declare dso_local i32 @omp_pause_resource_all(i32)
461
462declare dso_local i32 @omp_get_supported_active_levels()
463
464declare void @__kmpc_barrier(%struct.ident_t*, i32)
465
466declare i32 @__kmpc_cancel(%struct.ident_t*, i32, i32)
467
468declare i32 @__kmpc_cancel_barrier(%struct.ident_t*, i32)
469
470declare void @__kmpc_flush(%struct.ident_t*)
471
472declare i32 @__kmpc_global_thread_num(%struct.ident_t*)
473
474declare void @__kmpc_fork_call(%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...)
475
476declare i32 @__kmpc_omp_taskwait(%struct.ident_t*, i32)
477
478declare i32 @__kmpc_omp_taskyield(%struct.ident_t*, i32, i32)
479
480declare void @__kmpc_push_num_threads(%struct.ident_t*, i32, i32)
481
482declare void @__kmpc_push_proc_bind(%struct.ident_t*, i32, i32)
483
484declare void @__kmpc_serialized_parallel(%struct.ident_t*, i32)
485
486declare void @__kmpc_end_serialized_parallel(%struct.ident_t*, i32)
487
488declare i32 @__kmpc_master(%struct.ident_t*, i32)
489
490declare void @__kmpc_end_master(%struct.ident_t*, i32)
491
492declare void @__kmpc_critical(%struct.ident_t*, i32, [8 x i32]*)
493
494declare void @__kmpc_critical_with_hint(%struct.ident_t*, i32, [8 x i32]*, i32)
495
496declare void @__kmpc_end_critical(%struct.ident_t*, i32, [8 x i32]*)
497
498declare void @__kmpc_begin(%struct.ident_t*, i32)
499
500declare void @__kmpc_end(%struct.ident_t*)
501
502declare i32 @__kmpc_reduce(%struct.ident_t*, i32, i32, i64, i8*, void (i8*, i8*)*, [8 x i32]*)
503
504declare i32 @__kmpc_reduce_nowait(%struct.ident_t*, i32, i32, i64, i8*, void (i8*, i8*)*, [8 x i32]*)
505
506declare void @__kmpc_end_reduce(%struct.ident_t*, i32, [8 x i32]*)
507
508declare void @__kmpc_end_reduce_nowait(%struct.ident_t*, i32, [8 x i32]*)
509
510declare void @__kmpc_ordered(%struct.ident_t*, i32)
511
512declare void @__kmpc_end_ordered(%struct.ident_t*, i32)
513
514declare void @__kmpc_for_static_init_4(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32, i32)
515
516declare void @__kmpc_for_static_init_4u(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32, i32)
517
518declare void @__kmpc_for_static_init_8(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64, i64)
519
520declare void @__kmpc_for_static_init_8u(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64, i64)
521
522declare void @__kmpc_for_static_fini(%struct.ident_t*, i32)
523
524declare void @__kmpc_team_static_init_4(%struct.ident_t*, i32, i32*, i32*, i32*, i32*, i32, i32)
525
526declare void @__kmpc_team_static_init_4u(%struct.ident_t*, i32, i32*, i32*, i32*, i32*, i32, i32)
527
528declare void @__kmpc_team_static_init_8(%struct.ident_t*, i32, i32*, i64*, i64*, i64*, i64, i64)
529
530declare void @__kmpc_team_static_init_8u(%struct.ident_t*, i32, i32*, i64*, i64*, i64*, i64, i64)
531
532declare void @__kmpc_dist_for_static_init_4(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32*, i32, i32)
533
534declare void @__kmpc_dist_for_static_init_4u(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32*, i32, i32)
535
536declare void @__kmpc_dist_for_static_init_8(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64*, i64, i64)
537
538declare void @__kmpc_dist_for_static_init_8u(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64*, i64, i64)
539
540declare i32 @__kmpc_single(%struct.ident_t*, i32)
541
542declare void @__kmpc_end_single(%struct.ident_t*, i32)
543
544declare i8* @__kmpc_omp_task_alloc(%struct.ident_t*, i32, i32, i64, i64, i32 (i32, i8*)*)
545
546declare i32 @__kmpc_omp_task(%struct.ident_t*, i32, i8*)
547
548declare void @__kmpc_end_taskgroup(%struct.ident_t*, i32)
549
550declare void @__kmpc_taskgroup(%struct.ident_t*, i32)
551
552declare void @__kmpc_dist_dispatch_init_4(%struct.ident_t*, i32, i32, i32*, i32, i32, i32, i32)
553
554declare void @__kmpc_dist_dispatch_init_4u(%struct.ident_t*, i32, i32, i32*, i32, i32, i32, i32)
555
556declare void @__kmpc_dist_dispatch_init_8(%struct.ident_t*, i32, i32, i32*, i64, i64, i64, i64)
557
558declare void @__kmpc_dist_dispatch_init_8u(%struct.ident_t*, i32, i32, i32*, i64, i64, i64, i64)
559
560declare void @__kmpc_dispatch_init_4(%struct.ident_t*, i32, i32, i32, i32, i32, i32)
561
562declare void @__kmpc_dispatch_init_4u(%struct.ident_t*, i32, i32, i32, i32, i32, i32)
563
564declare void @__kmpc_dispatch_init_8(%struct.ident_t*, i32, i32, i64, i64, i64, i64)
565
566declare void @__kmpc_dispatch_init_8u(%struct.ident_t*, i32, i32, i64, i64, i64, i64)
567
568declare i32 @__kmpc_dispatch_next_4(%struct.ident_t*, i32, i32*, i32*, i32*, i32*)
569
570declare i32 @__kmpc_dispatch_next_4u(%struct.ident_t*, i32, i32*, i32*, i32*, i32*)
571
572declare i32 @__kmpc_dispatch_next_8(%struct.ident_t*, i32, i32*, i64*, i64*, i64*)
573
574declare i32 @__kmpc_dispatch_next_8u(%struct.ident_t*, i32, i32*, i64*, i64*, i64*)
575
576declare void @__kmpc_dispatch_fini_4(%struct.ident_t*, i32)
577
578declare void @__kmpc_dispatch_fini_4u(%struct.ident_t*, i32)
579
580declare void @__kmpc_dispatch_fini_8(%struct.ident_t*, i32)
581
582declare void @__kmpc_dispatch_fini_8u(%struct.ident_t*, i32)
583
584declare void @__kmpc_omp_task_begin_if0(%struct.ident_t*, i32, i8*)
585
586declare void @__kmpc_omp_task_complete_if0(%struct.ident_t*, i32, i8*)
587
588declare i32 @__kmpc_omp_task_with_deps(%struct.ident_t*, i32, i8*, i32, i8*, i32, i8*)
589
590declare void @__kmpc_omp_wait_deps(%struct.ident_t*, i32, i32, i8*, i32, i8*)
591
592declare i32 @__kmpc_cancellationpoint(%struct.ident_t*, i32, i32)
593
594declare void @__kmpc_push_num_teams(%struct.ident_t*, i32, i32, i32)
595
596declare void @__kmpc_fork_teams(%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...)
597
598declare void @__kmpc_taskloop(%struct.ident_t*, i32, i8*, i32, i64*, i64*, i64, i32, i32, i64, i8*)
599
600declare i8* @__kmpc_omp_target_task_alloc(%struct.ident_t*, i32, i32, i64, i64, i32 (i32, i8*)*, i64)
601
602declare i8* @__kmpc_taskred_modifier_init(%struct.ident_t*, i32, i32, i32, i8*)
603
604declare i8* @__kmpc_taskred_init(i32, i32, i8*)
605
606declare void @__kmpc_task_reduction_modifier_fini(%struct.ident_t*, i32, i32)
607
608declare void @__kmpc_copyprivate(%struct.ident_t*, i32, i64, i8*, void (i8*, i8*)*, i32)
609
610declare i8* @__kmpc_threadprivate_cached(%struct.ident_t*, i32, i8*, i64, i8***)
611
612declare void @__kmpc_threadprivate_register(%struct.ident_t*, i8*, i8* (i8*)*, i8* (i8*, i8*)*, void (i8*)*)
613
614declare void @__kmpc_doacross_init(%struct.ident_t*, i32, i32, i8*)
615
616declare void @__kmpc_doacross_wait(%struct.ident_t*, i32, i64*)
617
618declare void @__kmpc_doacross_post(%struct.ident_t*, i32, i64*)
619
620declare void @__kmpc_doacross_fini(%struct.ident_t*, i32)
621
622declare i8* @__kmpc_alloc(i32, i64, i8*)
623
624declare void @__kmpc_free(i32, i8*, i8*)
625
626declare i8* @__kmpc_init_allocator(i32, i8*, i32, i8*)
627
628declare void @__kmpc_destroy_allocator(i32, i8*)
629
630declare void @__kmpc_push_target_tripcount_mapper(%struct.ident_t*, i64, i64)
631
632declare i32 @__kmpc_warp_active_thread_mask()
633
634declare void @__kmpc_syncwarp(i32)
635
636declare i32 @__tgt_target_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**)
637
638declare i32 @__tgt_target_nowait_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**)
639
640declare i32 @__tgt_target_teams_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i32)
641
642declare i32 @__tgt_target_teams_nowait_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i32)
643
644declare void @__tgt_register_requires(i64)
645
646declare void @__tgt_target_data_begin_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
647
648declare void @__tgt_target_data_begin_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
649
650declare void @__tgt_target_data_end_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
651
652declare void @__tgt_target_data_end_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
653
654declare void @__tgt_target_data_update_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
655
656declare void @__tgt_target_data_update_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
657
658declare i64 @__tgt_mapper_num_components(i8*)
659
660declare void @__tgt_push_mapper_component(i8*, i8*, i8*, i64, i64, i8*)
661
662declare i8* @__kmpc_task_allow_completion_event(%struct.ident_t*, i32, i8*)
663
664declare i8* @__kmpc_task_reduction_get_th_data(i32, i8*, i8*)
665
666declare i8* @__kmpc_task_reduction_init(i32, i32, i8*)
667
668declare i8* @__kmpc_task_reduction_modifier_init(i8*, i32, i32, i32, i8*)
669
670declare void @__kmpc_proxy_task_completed_ooo(i8*)
671
672; CHECK: ; Function Attrs: nounwind
673; CHECK-NEXT: declare dso_local void @omp_set_num_threads(i32)
674
675; CHECK: ; Function Attrs: nounwind
676; CHECK-NEXT: declare dso_local void @omp_set_dynamic(i32)
677
678; CHECK: ; Function Attrs: nounwind
679; CHECK-NEXT: declare dso_local void @omp_set_nested(i32)
680
681; CHECK: ; Function Attrs: nounwind
682; CHECK-NEXT: declare dso_local void @omp_set_max_active_levels(i32)
683
684; CHECK: ; Function Attrs: nounwind
685; CHECK-NEXT: declare dso_local void @omp_set_schedule(i32, i32)
686
687; CHECK: ; Function Attrs: nounwind
688; CHECK-NEXT: declare dso_local i32 @omp_get_num_threads() #0
689
690; CHECK-NOT: Function Attrs
691; CHECK: declare dso_local void @use_int(i32)
692
693; CHECK: ; Function Attrs: nounwind
694; CHECK-NEXT: declare dso_local i32 @omp_get_dynamic() #0
695
696; CHECK: ; Function Attrs: nounwind
697; CHECK-NEXT: declare dso_local i32 @omp_get_nested() #0
698
699; CHECK: ; Function Attrs: nounwind
700; CHECK-NEXT: declare dso_local i32 @omp_get_max_threads() #0
701
702; CHECK: ; Function Attrs: nounwind
703; CHECK-NEXT: declare dso_local i32 @omp_get_thread_num() #0
704
705; CHECK: ; Function Attrs: nounwind
706; CHECK-NEXT: declare dso_local i32 @omp_get_num_procs() #0
707
708; CHECK: ; Function Attrs: nounwind
709; CHECK-NEXT: declare dso_local i32 @omp_in_parallel() #0
710
711; CHECK: ; Function Attrs: nounwind
712; CHECK-NEXT: declare dso_local i32 @omp_in_final() #0
713
714; CHECK: ; Function Attrs: nounwind
715; CHECK-NEXT: declare dso_local i32 @omp_get_active_level() #0
716
717; CHECK: ; Function Attrs: nounwind
718; CHECK-NEXT: declare dso_local i32 @omp_get_level() #0
719
720; CHECK: ; Function Attrs: nounwind
721; CHECK-NEXT: declare dso_local i32 @omp_get_ancestor_thread_num(i32) #0
722
723; CHECK: ; Function Attrs: nounwind
724; CHECK-NEXT: declare dso_local i32 @omp_get_team_size(i32) #0
725
726; CHECK: ; Function Attrs: nounwind
727; CHECK-NEXT: declare dso_local i32 @omp_get_thread_limit() #0
728
729; CHECK: ; Function Attrs: nounwind
730; CHECK-NEXT: declare dso_local i32 @omp_get_max_active_levels() #0
731
732; CHECK: ; Function Attrs: nounwind
733; CHECK-NEXT: declare dso_local void @omp_get_schedule(i32* nocapture writeonly, i32* nocapture writeonly) #0
734
735; CHECK-NOT: Function Attrs
736; CHECK: declare dso_local i32 @omp_get_max_task_priority()
737
738; CHECK-NOT: Function Attrs
739; CHECK: declare dso_local void @omp_init_lock(%struct.omp_lock_t*)
740
741; CHECK-NOT: Function Attrs
742; CHECK: declare dso_local void @omp_set_lock(%struct.omp_lock_t*)
743
744; CHECK-NOT: Function Attrs
745; CHECK: declare dso_local void @omp_unset_lock(%struct.omp_lock_t*)
746
747; CHECK-NOT: Function Attrs
748; CHECK: declare dso_local void @omp_destroy_lock(%struct.omp_lock_t*)
749
750; CHECK-NOT: Function Attrs
751; CHECK: declare dso_local i32 @omp_test_lock(%struct.omp_lock_t*)
752
753; CHECK-NOT: Function Attrs
754; CHECK: declare dso_local void @omp_init_nest_lock(%struct.omp_nest_lock_t*)
755
756; CHECK-NOT: Function Attrs
757; CHECK: declare dso_local void @omp_set_nest_lock(%struct.omp_nest_lock_t*)
758
759; CHECK-NOT: Function Attrs
760; CHECK: declare dso_local void @omp_unset_nest_lock(%struct.omp_nest_lock_t*)
761
762; CHECK-NOT: Function Attrs
763; CHECK: declare dso_local void @omp_destroy_nest_lock(%struct.omp_nest_lock_t*)
764
765; CHECK-NOT: Function Attrs
766; CHECK: declare dso_local i32 @omp_test_nest_lock(%struct.omp_nest_lock_t*)
767
768; CHECK-NOT: Function Attrs
769; CHECK: declare dso_local void @omp_init_lock_with_hint(%struct.omp_lock_t*, i32)
770
771; CHECK-NOT: Function Attrs
772; CHECK: declare dso_local void @omp_init_nest_lock_with_hint(%struct.omp_nest_lock_t*, i32)
773
774; CHECK-NOT: Function Attrs
775; CHECK: declare dso_local double @omp_get_wtime()
776
777; CHECK-NOT: Function Attrs
778; CHECK: declare dso_local void @use_double(double)
779
780; CHECK-NOT: Function Attrs
781; CHECK: declare dso_local double @omp_get_wtick()
782
783; CHECK-NOT: Function Attrs
784; CHECK: declare dso_local i32 @omp_get_default_device()
785
786; CHECK-NOT: Function Attrs
787; CHECK: declare dso_local void @omp_set_default_device(i32)
788
789; CHECK-NOT: Function Attrs
790; CHECK: declare dso_local i32 @omp_is_initial_device()
791
792; CHECK-NOT: Function Attrs
793; CHECK: declare dso_local i32 @omp_get_num_devices()
794
795; CHECK-NOT: Function Attrs
796; CHECK: declare dso_local i32 @omp_get_num_teams()
797
798; CHECK-NOT: Function Attrs
799; CHECK: declare dso_local i32 @omp_get_team_num()
800
801; CHECK: ; Function Attrs: nounwind
802; CHECK-NEXT: declare dso_local i32 @omp_get_cancellation() #0
803
804; CHECK-NOT: Function Attrs
805; CHECK: declare dso_local i32 @omp_get_initial_device()
806
807; CHECK-NOT: Function Attrs
808; CHECK: declare dso_local i8* @omp_target_alloc(i64, i32)
809
810; CHECK-NOT: Function Attrs
811; CHECK: declare dso_local void @use_voidptr(i8*)
812
813; CHECK-NOT: Function Attrs
814; CHECK: declare dso_local void @omp_target_free(i8*, i32)
815
816; CHECK-NOT: Function Attrs
817; CHECK: declare dso_local i32 @omp_target_is_present(i8*, i32)
818
819; CHECK-NOT: Function Attrs
820; CHECK: declare dso_local i32 @omp_target_memcpy(i8*, i8*, i64, i64, i64, i32, i32)
821
822; CHECK-NOT: Function Attrs
823; CHECK: declare dso_local i32 @omp_target_associate_ptr(i8*, i8*, i64, i64, i32)
824
825; CHECK-NOT: Function Attrs
826; CHECK: declare dso_local i32 @omp_target_disassociate_ptr(i8*, i32)
827
828; CHECK-NOT: Function Attrs
829; CHECK: declare dso_local i32 @omp_get_device_num()
830
831; CHECK: ; Function Attrs: nounwind
832; CHECK-NEXT: declare dso_local i32 @omp_get_proc_bind() #0
833
834; CHECK: ; Function Attrs: nounwind
835; CHECK-NEXT: declare dso_local i32 @omp_get_num_places() #0
836
837; CHECK-NOT: Function Attrs
838; CHECK: declare dso_local i32 @omp_get_place_num_procs(i32)
839
840; CHECK: ; Function Attrs: nounwind
841; CHECK-NEXT: declare dso_local void @omp_get_place_proc_ids(i32, i32* nocapture writeonly) #0
842
843; CHECK: ; Function Attrs: nounwind
844; CHECK-NEXT: declare dso_local i32 @omp_get_place_num() #0
845
846; CHECK: ; Function Attrs: nounwind
847; CHECK-NEXT: declare dso_local i32 @omp_get_partition_num_places() #0
848
849; CHECK: ; Function Attrs: nounwind
850; CHECK-NEXT: declare dso_local void @omp_get_partition_place_nums(i32*) #0
851
852; CHECK-NOT: Function Attrs
853; CHECK: declare dso_local i32 @omp_control_tool(i32, i32, i8*)
854
855; CHECK-NOT: Function Attrs
856; CHECK: declare dso_local void @omp_destroy_allocator(i64)
857
858; CHECK-NOT: Function Attrs
859; CHECK: declare dso_local void @omp_set_default_allocator(i64)
860
861; CHECK-NOT: Function Attrs
862; CHECK: declare dso_local i64 @omp_get_default_allocator()
863
864; CHECK-NOT: Function Attrs
865; CHECK: declare dso_local i8* @omp_alloc(i64, i64)
866
867; CHECK-NOT: Function Attrs
868; CHECK: declare dso_local void @omp_free(i8*, i64)
869
870; CHECK-NOT: Function Attrs
871; CHECK: declare dso_local void @ompc_set_affinity_format(i8*)
872
873; CHECK-NOT: Function Attrs
874; CHECK: declare dso_local i64 @ompc_get_affinity_format(i8*, i64)
875
876; CHECK-NOT: Function Attrs
877; CHECK: declare dso_local void @use_sizet(i64)
878
879; CHECK-NOT: Function Attrs
880; CHECK: declare dso_local void @ompc_display_affinity(i8*)
881
882; CHECK-NOT: Function Attrs
883; CHECK: declare dso_local i64 @ompc_capture_affinity(i8*, i64, i8*)
884
885; CHECK-NOT: Function Attrs
886; CHECK: declare dso_local void @omp_fulfill_event(i64)
887
888; CHECK-NOT: Function Attrs
889; CHECK: declare dso_local i32 @omp_pause_resource(i32, i32)
890
891; CHECK-NOT: Function Attrs
892; CHECK: declare dso_local i32 @omp_pause_resource_all(i32)
893
894; CHECK: ; Function Attrs: nounwind
895; CHECK-NEXT: declare dso_local i32 @omp_get_supported_active_levels()
896
897; CHECK: ; Function Attrs: convergent nounwind
898; CHECK-NEXT: declare void @__kmpc_barrier(%struct.ident_t*, i32)
899
900; CHECK: ; Function Attrs: nounwind
901; CHECK-NEXT: declare i32 @__kmpc_cancel(%struct.ident_t*, i32, i32)
902
903; CHECK: ; Function Attrs: convergent nounwind
904; CHECK-NEXT: declare i32 @__kmpc_cancel_barrier(%struct.ident_t*, i32)
905
906; CHECK: ; Function Attrs: convergent nounwind
907; CHECK-NEXT: declare void @__kmpc_flush(%struct.ident_t*)
908
909; CHECK: ; Function Attrs: nounwind
910; CHECK-NEXT: declare i32 @__kmpc_global_thread_num(%struct.ident_t*)
911
912; CHECK: ; Function Attrs: nounwind
913; CHECK-NEXT: declare void @__kmpc_fork_call(%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...)
914
915; CHECK: ; Function Attrs: convergent nounwind
916; CHECK-NEXT: declare i32 @__kmpc_omp_taskwait(%struct.ident_t*, i32)
917
918; CHECK: ; Function Attrs: nounwind
919; CHECK-NEXT: declare i32 @__kmpc_omp_taskyield(%struct.ident_t*, i32, i32)
920
921; CHECK: ; Function Attrs: nounwind
922; CHECK-NEXT: declare void @__kmpc_push_num_threads(%struct.ident_t*, i32, i32)
923
924; CHECK: ; Function Attrs: nounwind
925; CHECK-NEXT: declare void @__kmpc_push_proc_bind(%struct.ident_t*, i32, i32)
926
927; CHECK: ; Function Attrs: nounwind
928; CHECK-NEXT: declare void @__kmpc_serialized_parallel(%struct.ident_t*, i32)
929
930; CHECK: ; Function Attrs: nounwind
931; CHECK-NEXT: declare void @__kmpc_end_serialized_parallel(%struct.ident_t*, i32)
932
933; CHECK: ; Function Attrs: nounwind
934; CHECK-NEXT: declare i32 @__kmpc_master(%struct.ident_t*, i32)
935
936; CHECK: ; Function Attrs: nounwind
937; CHECK-NEXT: declare void @__kmpc_end_master(%struct.ident_t*, i32)
938
939; CHECK: ; Function Attrs: convergent nounwind
940; CHECK-NEXT: declare void @__kmpc_critical(%struct.ident_t*, i32, [8 x i32]*)
941
942; CHECK: ; Function Attrs: convergent nounwind
943; CHECK-NEXT: declare void @__kmpc_critical_with_hint(%struct.ident_t*, i32, [8 x i32]*, i32)
944
945; CHECK: ; Function Attrs: convergent nounwind
946; CHECK-NEXT: declare void @__kmpc_end_critical(%struct.ident_t*, i32, [8 x i32]*)
947
948; CHECK: ; Function Attrs: nounwind
949; CHECK-NEXT: declare void @__kmpc_begin(%struct.ident_t*, i32)
950
951; CHECK: ; Function Attrs: nounwind
952; CHECK-NEXT: declare void @__kmpc_end(%struct.ident_t*)
953
954; CHECK: ; Function Attrs: convergent nounwind
955; CHECK-NEXT: declare i32 @__kmpc_reduce(%struct.ident_t*, i32, i32, i64, i8*, void (i8*, i8*)*, [8 x i32]*)
956
957; CHECK: ; Function Attrs: convergent nounwind
958; CHECK-NEXT: declare i32 @__kmpc_reduce_nowait(%struct.ident_t*, i32, i32, i64, i8*, void (i8*, i8*)*, [8 x i32]*)
959
960; CHECK: ; Function Attrs: convergent nounwind
961; CHECK-NEXT: declare void @__kmpc_end_reduce(%struct.ident_t*, i32, [8 x i32]*)
962
963; CHECK: ; Function Attrs: convergent nounwind
964; CHECK-NEXT: declare void @__kmpc_end_reduce_nowait(%struct.ident_t*, i32, [8 x i32]*)
965
966; CHECK: ; Function Attrs: convergent nounwind
967; CHECK-NEXT: declare void @__kmpc_ordered(%struct.ident_t*, i32)
968
969; CHECK: ; Function Attrs: convergent nounwind
970; CHECK-NEXT: declare void @__kmpc_end_ordered(%struct.ident_t*, i32)
971
972; CHECK: ; Function Attrs: nounwind
973; CHECK-NEXT: declare void @__kmpc_for_static_init_4(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32, i32)
974
975; CHECK: ; Function Attrs: nounwind
976; CHECK-NEXT: declare void @__kmpc_for_static_init_4u(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32, i32)
977
978; CHECK: ; Function Attrs: nounwind
979; CHECK-NEXT: declare void @__kmpc_for_static_init_8(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64, i64)
980
981; CHECK: ; Function Attrs: nounwind
982; CHECK-NEXT: declare void @__kmpc_for_static_init_8u(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64, i64)
983
984; CHECK: ; Function Attrs: nounwind
985; CHECK-NEXT: declare void @__kmpc_for_static_fini(%struct.ident_t*, i32)
986
987; CHECK: ; Function Attrs: nounwind
988; CHECK-NEXT: declare void @__kmpc_team_static_init_4(%struct.ident_t*, i32, i32*, i32*, i32*, i32*, i32, i32)
989
990; CHECK: ; Function Attrs: nounwind
991; CHECK-NEXT: declare void @__kmpc_team_static_init_4u(%struct.ident_t*, i32, i32*, i32*, i32*, i32*, i32, i32)
992
993; CHECK: ; Function Attrs: nounwind
994; CHECK-NEXT: declare void @__kmpc_team_static_init_8(%struct.ident_t*, i32, i32*, i64*, i64*, i64*, i64, i64)
995
996; CHECK: ; Function Attrs: nounwind
997; CHECK-NEXT: declare void @__kmpc_team_static_init_8u(%struct.ident_t*, i32, i32*, i64*, i64*, i64*, i64, i64)
998
999; CHECK: ; Function Attrs: nounwind
1000; CHECK-NEXT: declare void @__kmpc_dist_for_static_init_4(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32*, i32, i32)
1001
1002; CHECK: ; Function Attrs: nounwind
1003; CHECK-NEXT: declare void @__kmpc_dist_for_static_init_4u(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32*, i32, i32)
1004
1005; CHECK: ; Function Attrs: nounwind
1006; CHECK-NEXT: declare void @__kmpc_dist_for_static_init_8(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64*, i64, i64)
1007
1008; CHECK: ; Function Attrs: nounwind
1009; CHECK-NEXT: declare void @__kmpc_dist_for_static_init_8u(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64*, i64, i64)
1010
1011; CHECK: ; Function Attrs: convergent nounwind
1012; CHECK-NEXT: declare i32 @__kmpc_single(%struct.ident_t*, i32)
1013
1014; CHECK: ; Function Attrs: convergent nounwind
1015; CHECK-NEXT: declare void @__kmpc_end_single(%struct.ident_t*, i32)
1016
1017; CHECK: ; Function Attrs: nounwind
1018; CHECK-NEXT: declare i8* @__kmpc_omp_task_alloc(%struct.ident_t*, i32, i32, i64, i64, i32 (i32, i8*)*)
1019
1020; CHECK: ; Function Attrs: nounwind
1021; CHECK-NEXT: declare i32 @__kmpc_omp_task(%struct.ident_t*, i32, i8*)
1022
1023; CHECK: ; Function Attrs: convergent nounwind
1024; CHECK-NEXT: declare void @__kmpc_end_taskgroup(%struct.ident_t*, i32)
1025
1026; CHECK: ; Function Attrs: convergent nounwind
1027; CHECK-NEXT: declare void @__kmpc_taskgroup(%struct.ident_t*, i32)
1028
1029; CHECK: ; Function Attrs: nounwind
1030; CHECK-NEXT: declare void @__kmpc_dist_dispatch_init_4(%struct.ident_t*, i32, i32, i32*, i32, i32, i32, i32)
1031
1032; CHECK: ; Function Attrs: nounwind
1033; CHECK-NEXT: declare void @__kmpc_dist_dispatch_init_4u(%struct.ident_t*, i32, i32, i32*, i32, i32, i32, i32)
1034
1035; CHECK: ; Function Attrs: nounwind
1036; CHECK-NEXT: declare void @__kmpc_dist_dispatch_init_8(%struct.ident_t*, i32, i32, i32*, i64, i64, i64, i64)
1037
1038; CHECK: ; Function Attrs: nounwind
1039; CHECK-NEXT: declare void @__kmpc_dist_dispatch_init_8u(%struct.ident_t*, i32, i32, i32*, i64, i64, i64, i64)
1040
1041; CHECK: ; Function Attrs: nounwind
1042; CHECK-NEXT: declare void @__kmpc_dispatch_init_4(%struct.ident_t*, i32, i32, i32, i32, i32, i32)
1043
1044; CHECK: ; Function Attrs: nounwind
1045; CHECK-NEXT: declare void @__kmpc_dispatch_init_4u(%struct.ident_t*, i32, i32, i32, i32, i32, i32)
1046
1047; CHECK: ; Function Attrs: nounwind
1048; CHECK-NEXT: declare void @__kmpc_dispatch_init_8(%struct.ident_t*, i32, i32, i64, i64, i64, i64)
1049
1050; CHECK: ; Function Attrs: nounwind
1051; CHECK-NEXT: declare void @__kmpc_dispatch_init_8u(%struct.ident_t*, i32, i32, i64, i64, i64, i64)
1052
1053; CHECK: ; Function Attrs: nounwind
1054; CHECK-NEXT: declare i32 @__kmpc_dispatch_next_4(%struct.ident_t*, i32, i32*, i32*, i32*, i32*)
1055
1056; CHECK: ; Function Attrs: nounwind
1057; CHECK-NEXT: declare i32 @__kmpc_dispatch_next_4u(%struct.ident_t*, i32, i32*, i32*, i32*, i32*)
1058
1059; CHECK: ; Function Attrs: nounwind
1060; CHECK-NEXT: declare i32 @__kmpc_dispatch_next_8(%struct.ident_t*, i32, i32*, i64*, i64*, i64*)
1061
1062; CHECK: ; Function Attrs: nounwind
1063; CHECK-NEXT: declare i32 @__kmpc_dispatch_next_8u(%struct.ident_t*, i32, i32*, i64*, i64*, i64*)
1064
1065; CHECK: ; Function Attrs: nounwind
1066; CHECK-NEXT: declare void @__kmpc_dispatch_fini_4(%struct.ident_t*, i32)
1067
1068; CHECK: ; Function Attrs: nounwind
1069; CHECK-NEXT: declare void @__kmpc_dispatch_fini_4u(%struct.ident_t*, i32)
1070
1071; CHECK: ; Function Attrs: nounwind
1072; CHECK-NEXT: declare void @__kmpc_dispatch_fini_8(%struct.ident_t*, i32)
1073
1074; CHECK: ; Function Attrs: nounwind
1075; CHECK-NEXT: declare void @__kmpc_dispatch_fini_8u(%struct.ident_t*, i32)
1076
1077; CHECK: ; Function Attrs: nounwind
1078; CHECK-NEXT: declare void @__kmpc_omp_task_begin_if0(%struct.ident_t*, i32, i8*)
1079
1080; CHECK: ; Function Attrs: nounwind
1081; CHECK-NEXT: declare void @__kmpc_omp_task_complete_if0(%struct.ident_t*, i32, i8*)
1082
1083; CHECK: ; Function Attrs: nounwind
1084; CHECK-NEXT: declare i32 @__kmpc_omp_task_with_deps(%struct.ident_t*, i32, i8*, i32, i8*, i32, i8*)
1085
1086; CHECK: ; Function Attrs: convergent nounwind
1087; CHECK-NEXT: declare void @__kmpc_omp_wait_deps(%struct.ident_t*, i32, i32, i8*, i32, i8*)
1088
1089; CHECK: ; Function Attrs: nounwind
1090; CHECK-NEXT: declare i32 @__kmpc_cancellationpoint(%struct.ident_t*, i32, i32)
1091
1092; CHECK: ; Function Attrs: nounwind
1093; CHECK-NEXT: declare void @__kmpc_push_num_teams(%struct.ident_t*, i32, i32, i32)
1094
1095; CHECK: ; Function Attrs: nounwind
1096; CHECK-NEXT: declare void @__kmpc_fork_teams(%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...)
1097
1098; CHECK: ; Function Attrs: nounwind
1099; CHECK-NEXT: declare void @__kmpc_taskloop(%struct.ident_t*, i32, i8*, i32, i64*, i64*, i64, i32, i32, i64, i8*)
1100
1101; CHECK: ; Function Attrs: nounwind
1102; CHECK-NEXT: declare i8* @__kmpc_omp_target_task_alloc(%struct.ident_t*, i32, i32, i64, i64, i32 (i32, i8*)*, i64)
1103
1104; CHECK: ; Function Attrs: nounwind
1105; CHECK-NEXT: declare i8* @__kmpc_taskred_modifier_init(%struct.ident_t*, i32, i32, i32, i8*)
1106
1107; CHECK: ; Function Attrs: nounwind
1108; CHECK-NEXT: declare i8* @__kmpc_taskred_init(i32, i32, i8*)
1109
1110; CHECK: ; Function Attrs: convergent nounwind
1111; CHECK-NEXT: declare void @__kmpc_task_reduction_modifier_fini(%struct.ident_t*, i32, i32)
1112
1113; CHECK: ; Function Attrs: nounwind
1114; CHECK-NEXT: declare void @__kmpc_copyprivate(%struct.ident_t*, i32, i64, i8*, void (i8*, i8*)*, i32)
1115
1116; CHECK: ; Function Attrs: nounwind
1117; CHECK-NEXT: declare i8* @__kmpc_threadprivate_cached(%struct.ident_t*, i32, i8*, i64, i8***)
1118
1119; CHECK: ; Function Attrs: nounwind
1120; CHECK-NEXT: declare void @__kmpc_threadprivate_register(%struct.ident_t*, i8*, i8* (i8*)*, i8* (i8*, i8*)*, void (i8*)*)
1121
1122; CHECK: ; Function Attrs: convergent nounwind
1123; CHECK-NEXT: declare void @__kmpc_doacross_init(%struct.ident_t*, i32, i32, i8*)
1124
1125; CHECK: ; Function Attrs: convergent nounwind
1126; CHECK-NEXT: declare void @__kmpc_doacross_wait(%struct.ident_t*, i32, i64*)
1127
1128; CHECK: ; Function Attrs: convergent nounwind
1129; CHECK-NEXT: declare void @__kmpc_doacross_post(%struct.ident_t*, i32, i64*)
1130
1131; CHECK: ; Function Attrs: convergent nounwind
1132; CHECK-NEXT: declare void @__kmpc_doacross_fini(%struct.ident_t*, i32)
1133
1134; CHECK: ; Function Attrs: nounwind
1135; CHECK-NEXT: declare i8* @__kmpc_alloc(i32, i64, i8*)
1136
1137; CHECK: ; Function Attrs: nounwind
1138; CHECK-NEXT: declare void @__kmpc_free(i32, i8*, i8*)
1139
1140; CHECK: ; Function Attrs: nounwind
1141; CHECK-NEXT: declare i8* @__kmpc_init_allocator(i32, i8*, i32, i8*)
1142
1143; CHECK: ; Function Attrs: nounwind
1144; CHECK-NEXT: declare void @__kmpc_destroy_allocator(i32, i8*)
1145
1146; CHECK: ; Function Attrs: nounwind
1147; CHECK-NEXT: declare void @__kmpc_push_target_tripcount_mapper(%struct.ident_t*, i64, i64)
1148
1149; CHECK: ; Function Attrs: convergent nounwind
1150; CHECK-NEXT: declare i32 @__kmpc_warp_active_thread_mask()
1151
1152; CHECK: ; Function Attrs: convergent nounwind
1153; CHECK-NEXT: declare void @__kmpc_syncwarp(i32)
1154
1155; CHECK: ; Function Attrs: nounwind
1156; CHECK-NEXT: declare i32 @__tgt_target_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1157
1158; CHECK: ; Function Attrs: nounwind
1159; CHECK-NEXT: declare i32 @__tgt_target_nowait_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1160
1161; CHECK: ; Function Attrs: nounwind
1162; CHECK-NEXT: declare i32 @__tgt_target_teams_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i32)
1163
1164; CHECK: ; Function Attrs: nounwind
1165; CHECK-NEXT: declare i32 @__tgt_target_teams_nowait_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i32)
1166
1167; CHECK: ; Function Attrs: nounwind
1168; CHECK-NEXT: declare void @__tgt_register_requires(i64)
1169
1170; CHECK: ; Function Attrs: nounwind
1171; CHECK-NEXT: declare void @__tgt_target_data_begin_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1172
1173; CHECK: ; Function Attrs: nounwind
1174; CHECK-NEXT: declare void @__tgt_target_data_begin_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1175
1176; CHECK: ; Function Attrs: nounwind
1177; CHECK-NEXT: declare void @__tgt_target_data_end_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1178
1179; CHECK: ; Function Attrs: nounwind
1180; CHECK-NEXT: declare void @__tgt_target_data_end_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1181
1182; CHECK: ; Function Attrs: nounwind
1183; CHECK-NEXT: declare void @__tgt_target_data_update_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1184
1185; CHECK: ; Function Attrs: nounwind
1186; CHECK-NEXT: declare void @__tgt_target_data_update_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1187
1188; CHECK: ; Function Attrs: nounwind
1189; CHECK-NEXT: declare i64 @__tgt_mapper_num_components(i8*)
1190
1191; CHECK: ; Function Attrs: nounwind
1192; CHECK-NEXT: declare void @__tgt_push_mapper_component(i8*, i8*, i8*, i64, i64, i8*)
1193
1194; CHECK: ; Function Attrs: nounwind
1195; CHECK-NEXT: declare i8* @__kmpc_task_allow_completion_event(%struct.ident_t*, i32, i8*)
1196
1197; CHECK: ; Function Attrs: nounwind
1198; CHECK-NEXT: declare i8* @__kmpc_task_reduction_get_th_data(i32, i8*, i8*)
1199
1200; CHECK: ; Function Attrs: nounwind
1201; CHECK-NEXT: declare i8* @__kmpc_task_reduction_init(i32, i32, i8*)
1202
1203; CHECK: ; Function Attrs: nounwind
1204; CHECK-NEXT: declare i8* @__kmpc_task_reduction_modifier_init(i8*, i32, i32, i32, i8*)
1205
1206; CHECK: ; Function Attrs: nounwind
1207; CHECK-NEXT: declare void @__kmpc_proxy_task_completed_ooo(i8*)
1208
1209; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn writeonly
1210; OPTIMISTIC-NEXT: declare dso_local void @omp_set_num_threads(i32)
1211
1212; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn writeonly
1213; OPTIMISTIC-NEXT: declare dso_local void @omp_set_dynamic(i32)
1214
1215; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn writeonly
1216; OPTIMISTIC-NEXT: declare dso_local void @omp_set_nested(i32)
1217
1218; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn writeonly
1219; OPTIMISTIC-NEXT: declare dso_local void @omp_set_max_active_levels(i32)
1220
1221; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn writeonly
1222; OPTIMISTIC-NEXT: declare dso_local void @omp_set_schedule(i32, i32)
1223
1224; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1225; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_num_threads()
1226
1227; OPTIMISTIC-NOT: Function Attrs
1228; OPTIMISTIC: declare dso_local void @use_int(i32)
1229
1230; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1231; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_dynamic()
1232
1233; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1234; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_nested()
1235
1236; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1237; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_max_threads()
1238
1239; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1240; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_thread_num()
1241
1242; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1243; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_num_procs()
1244
1245; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1246; OPTIMISTIC-NEXT: declare dso_local i32 @omp_in_parallel()
1247
1248; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1249; OPTIMISTIC-NEXT: declare dso_local i32 @omp_in_final()
1250
1251; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1252; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_active_level()
1253
1254; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1255; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_level()
1256
1257; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1258; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_ancestor_thread_num(i32)
1259
1260; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1261; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_team_size(i32)
1262
1263; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1264; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_thread_limit()
1265
1266; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1267; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_max_active_levels()
1268
1269; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1270; OPTIMISTIC-NEXT: declare dso_local void @omp_get_schedule(i32* nocapture writeonly, i32* nocapture writeonly)
1271
1272; OPTIMISTIC-NOT: Function Attrs
1273; OPTIMISTIC: declare dso_local i32 @omp_get_max_task_priority()
1274
1275; OPTIMISTIC-NOT: Function Attrs
1276; OPTIMISTIC: declare dso_local void @omp_init_lock(%struct.omp_lock_t*)
1277
1278; OPTIMISTIC-NOT: Function Attrs
1279; OPTIMISTIC: declare dso_local void @omp_set_lock(%struct.omp_lock_t*)
1280
1281; OPTIMISTIC-NOT: Function Attrs
1282; OPTIMISTIC: declare dso_local void @omp_unset_lock(%struct.omp_lock_t*)
1283
1284; OPTIMISTIC-NOT: Function Attrs
1285; OPTIMISTIC: declare dso_local void @omp_destroy_lock(%struct.omp_lock_t*)
1286
1287; OPTIMISTIC-NOT: Function Attrs
1288; OPTIMISTIC: declare dso_local i32 @omp_test_lock(%struct.omp_lock_t*)
1289
1290; OPTIMISTIC-NOT: Function Attrs
1291; OPTIMISTIC: declare dso_local void @omp_init_nest_lock(%struct.omp_nest_lock_t*)
1292
1293; OPTIMISTIC-NOT: Function Attrs
1294; OPTIMISTIC: declare dso_local void @omp_set_nest_lock(%struct.omp_nest_lock_t*)
1295
1296; OPTIMISTIC-NOT: Function Attrs
1297; OPTIMISTIC: declare dso_local void @omp_unset_nest_lock(%struct.omp_nest_lock_t*)
1298
1299; OPTIMISTIC-NOT: Function Attrs
1300; OPTIMISTIC: declare dso_local void @omp_destroy_nest_lock(%struct.omp_nest_lock_t*)
1301
1302; OPTIMISTIC-NOT: Function Attrs
1303; OPTIMISTIC: declare dso_local i32 @omp_test_nest_lock(%struct.omp_nest_lock_t*)
1304
1305; OPTIMISTIC-NOT: Function Attrs
1306; OPTIMISTIC: declare dso_local void @omp_init_lock_with_hint(%struct.omp_lock_t*, i32)
1307
1308; OPTIMISTIC-NOT: Function Attrs
1309; OPTIMISTIC: declare dso_local void @omp_init_nest_lock_with_hint(%struct.omp_nest_lock_t*, i32)
1310
1311; OPTIMISTIC-NOT: Function Attrs
1312; OPTIMISTIC: declare dso_local double @omp_get_wtime()
1313
1314; OPTIMISTIC-NOT: Function Attrs
1315; OPTIMISTIC: declare dso_local void @use_double(double)
1316
1317; OPTIMISTIC-NOT: Function Attrs
1318; OPTIMISTIC: declare dso_local double @omp_get_wtick()
1319
1320; OPTIMISTIC-NOT: Function Attrs
1321; OPTIMISTIC: declare dso_local i32 @omp_get_default_device()
1322
1323; OPTIMISTIC-NOT: Function Attrs
1324; OPTIMISTIC: declare dso_local void @omp_set_default_device(i32)
1325
1326; OPTIMISTIC-NOT: Function Attrs
1327; OPTIMISTIC: declare dso_local i32 @omp_is_initial_device()
1328
1329; OPTIMISTIC-NOT: Function Attrs
1330; OPTIMISTIC: declare dso_local i32 @omp_get_num_devices()
1331
1332; OPTIMISTIC-NOT: Function Attrs
1333; OPTIMISTIC: declare dso_local i32 @omp_get_num_teams()
1334
1335; OPTIMISTIC-NOT: Function Attrs
1336; OPTIMISTIC: declare dso_local i32 @omp_get_team_num()
1337
1338; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly
1339; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_cancellation()
1340
1341; OPTIMISTIC-NOT: Function Attrs
1342; OPTIMISTIC: declare dso_local i32 @omp_get_initial_device()
1343
1344; OPTIMISTIC-NOT: Function Attrs
1345; OPTIMISTIC: declare dso_local i8* @omp_target_alloc(i64, i32)
1346
1347; OPTIMISTIC-NOT: Function Attrs
1348; OPTIMISTIC: declare dso_local void @use_voidptr(i8*)
1349
1350; OPTIMISTIC-NOT: Function Attrs
1351; OPTIMISTIC: declare dso_local void @omp_target_free(i8*, i32)
1352
1353; OPTIMISTIC-NOT: Function Attrs
1354; OPTIMISTIC: declare dso_local i32 @omp_target_is_present(i8*, i32)
1355
1356; OPTIMISTIC-NOT: Function Attrs
1357; OPTIMISTIC: declare dso_local i32 @omp_target_memcpy(i8*, i8*, i64, i64, i64, i32, i32)
1358
1359; OPTIMISTIC-NOT: Function Attrs
1360; OPTIMISTIC: declare dso_local i32 @omp_target_associate_ptr(i8*, i8*, i64, i64, i32)
1361
1362; OPTIMISTIC-NOT: Function Attrs
1363; OPTIMISTIC: declare dso_local i32 @omp_target_disassociate_ptr(i8*, i32)
1364
1365; OPTIMISTIC-NOT: Function Attrs
1366; OPTIMISTIC: declare dso_local i32 @omp_get_device_num()
1367
1368; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly
1369; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_proc_bind()
1370
1371; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly
1372; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_num_places()
1373
1374; OPTIMISTIC-NOT: Function Attrs
1375; OPTIMISTIC: declare dso_local i32 @omp_get_place_num_procs(i32)
1376
1377; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind
1378; OPTIMISTIC-NEXT: declare dso_local void @omp_get_place_proc_ids(i32, i32* nocapture writeonly)
1379
1380; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly
1381; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_place_num()
1382
1383; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly
1384; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_partition_num_places()
1385
1386; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly
1387; OPTIMISTIC-NEXT: declare dso_local void @omp_get_partition_place_nums(i32*)
1388
1389; OPTIMISTIC-NOT: Function Attrs
1390; OPTIMISTIC: declare dso_local i32 @omp_control_tool(i32, i32, i8*)
1391
1392; OPTIMISTIC-NOT: Function Attrs
1393; OPTIMISTIC: declare dso_local void @omp_destroy_allocator(i64)
1394
1395; OPTIMISTIC-NOT: Function Attrs
1396; OPTIMISTIC: declare dso_local void @omp_set_default_allocator(i64)
1397
1398; OPTIMISTIC-NOT: Function Attrs
1399; OPTIMISTIC: declare dso_local i64 @omp_get_default_allocator()
1400
1401; OPTIMISTIC-NOT: Function Attrs
1402; OPTIMISTIC: declare dso_local i8* @omp_alloc(i64, i64)
1403
1404; OPTIMISTIC-NOT: Function Attrs
1405; OPTIMISTIC: declare dso_local void @omp_free(i8*, i64)
1406
1407; OPTIMISTIC-NOT: Function Attrs
1408; OPTIMISTIC: declare dso_local void @ompc_set_affinity_format(i8*)
1409
1410; OPTIMISTIC-NOT: Function Attrs
1411; OPTIMISTIC: declare dso_local i64 @ompc_get_affinity_format(i8*, i64)
1412
1413; OPTIMISTIC-NOT: Function Attrs
1414; OPTIMISTIC: declare dso_local void @use_sizet(i64)
1415
1416; OPTIMISTIC-NOT: Function Attrs
1417; OPTIMISTIC: declare dso_local void @ompc_display_affinity(i8*)
1418
1419; OPTIMISTIC-NOT: Function Attrs
1420; OPTIMISTIC: declare dso_local i64 @ompc_capture_affinity(i8*, i64, i8*)
1421
1422; OPTIMISTIC-NOT: Function Attrs
1423; OPTIMISTIC: declare dso_local void @omp_fulfill_event(i64)
1424
1425; OPTIMISTIC-NOT: Function Attrs
1426; OPTIMISTIC: declare dso_local i32 @omp_pause_resource(i32, i32)
1427
1428; OPTIMISTIC-NOT: Function Attrs
1429; OPTIMISTIC: declare dso_local i32 @omp_pause_resource_all(i32)
1430
1431; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1432; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_supported_active_levels()
1433
1434; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1435; OPTIMISTIC-NEXT: declare i32 @__kmpc_global_thread_num(%struct.ident_t* nocapture nofree readonly)
1436
1437; OPTIMISTIC: ; Function Attrs: nounwind
1438; OPTIMISTIC-NEXT: declare void @__kmpc_fork_call(%struct.ident_t* nocapture nofree readonly, i32, void (i32*, i32*, ...)* nocapture nofree readonly, ...)
1439
1440; OPTIMISTIC: ; Function Attrs: convergent nounwind
1441; OPTIMISTIC-NEXT: declare i32 @__kmpc_omp_taskwait(%struct.ident_t* nocapture nofree readonly, i32)
1442
1443; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1444; OPTIMISTIC-NEXT: declare i32 @__kmpc_omp_taskyield(%struct.ident_t* nocapture nofree readonly, i32, i32)
1445
1446; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1447; OPTIMISTIC-NEXT: declare void @__kmpc_push_num_threads(%struct.ident_t* nocapture nofree readonly, i32, i32)
1448
1449; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1450; OPTIMISTIC-NEXT: declare void @__kmpc_push_proc_bind(%struct.ident_t* nocapture nofree readonly, i32, i32)
1451
1452; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1453; OPTIMISTIC-NEXT: declare void @__kmpc_serialized_parallel(%struct.ident_t* nocapture nofree readonly, i32)
1454
1455; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1456; OPTIMISTIC-NEXT: declare void @__kmpc_end_serialized_parallel(%struct.ident_t* nocapture nofree readonly, i32)
1457
1458; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1459; OPTIMISTIC-NEXT: declare i32 @__kmpc_master(%struct.ident_t* nocapture nofree readonly, i32)
1460
1461; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1462; OPTIMISTIC-NEXT: declare void @__kmpc_end_master(%struct.ident_t* nocapture nofree readonly, i32)
1463
1464; OPTIMISTIC: ; Function Attrs: convergent nounwind
1465; OPTIMISTIC-NEXT: declare void @__kmpc_critical(%struct.ident_t* nocapture nofree readonly, i32, [8 x i32]*)
1466
1467; OPTIMISTIC: ; Function Attrs: convergent nounwind
1468; OPTIMISTIC-NEXT: declare void @__kmpc_critical_with_hint(%struct.ident_t* nocapture nofree readonly, i32, [8 x i32]*, i32)
1469
1470; OPTIMISTIC: ; Function Attrs: convergent nounwind
1471; OPTIMISTIC-NEXT: declare void @__kmpc_end_critical(%struct.ident_t* nocapture nofree readonly, i32, [8 x i32]*)
1472
1473; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1474; OPTIMISTIC-NEXT: declare void @__kmpc_begin(%struct.ident_t* nocapture nofree readonly, i32)
1475
1476; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1477; OPTIMISTIC-NEXT: declare void @__kmpc_end(%struct.ident_t* nocapture nofree readonly)
1478
1479; OPTIMISTIC: ; Function Attrs: convergent nounwind
1480; OPTIMISTIC-NEXT: declare i32 @__kmpc_reduce(%struct.ident_t* nocapture nofree readonly, i32, i32, i64, i8* nocapture nofree readonly, void (i8*, i8*)*, [8 x i32]*)
1481
1482; OPTIMISTIC: ; Function Attrs: convergent nounwind
1483; OPTIMISTIC-NEXT: declare i32 @__kmpc_reduce_nowait(%struct.ident_t* nocapture nofree readonly, i32, i32, i64, i8* nocapture nofree readonly, void (i8*, i8*)*, [8 x i32]*)
1484
1485; OPTIMISTIC: ; Function Attrs: convergent nounwind
1486; OPTIMISTIC-NEXT: declare void @__kmpc_end_reduce(%struct.ident_t* nocapture nofree readonly, i32, [8 x i32]*)
1487
1488; OPTIMISTIC: ; Function Attrs: convergent nounwind
1489; OPTIMISTIC-NEXT: declare void @__kmpc_end_reduce_nowait(%struct.ident_t* nocapture nofree readonly, i32, [8 x i32]*)
1490
1491; OPTIMISTIC: ; Function Attrs: convergent nounwind
1492; OPTIMISTIC-NEXT: declare void @__kmpc_ordered(%struct.ident_t* nocapture nofree readonly, i32)
1493
1494; OPTIMISTIC: ; Function Attrs: convergent nounwind
1495; OPTIMISTIC-NEXT: declare void @__kmpc_end_ordered(%struct.ident_t* nocapture nofree readonly, i32)
1496
1497; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1498; OPTIMISTIC-NEXT: declare void @__kmpc_for_static_init_4(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32, i32)
1499
1500; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1501; OPTIMISTIC-NEXT: declare void @__kmpc_for_static_init_4u(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32, i32)
1502
1503; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1504; OPTIMISTIC-NEXT: declare void @__kmpc_for_static_init_8(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64, i64)
1505
1506; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1507; OPTIMISTIC-NEXT: declare void @__kmpc_for_static_init_8u(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64, i64)
1508
1509; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1510; OPTIMISTIC-NEXT: declare void @__kmpc_for_static_fini(%struct.ident_t* nocapture nofree readonly, i32)
1511
1512; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1513; OPTIMISTIC-NEXT: declare void @__kmpc_team_static_init_4(%struct.ident_t* nocapture nofree readonly, i32, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32, i32)
1514
1515; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1516; OPTIMISTIC-NEXT: declare void @__kmpc_team_static_init_4u(%struct.ident_t* nocapture nofree readonly, i32, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32, i32)
1517
1518; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1519; OPTIMISTIC-NEXT: declare void @__kmpc_team_static_init_8(%struct.ident_t* nocapture nofree readonly, i32, i32* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64, i64)
1520
1521; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1522; OPTIMISTIC-NEXT: declare void @__kmpc_team_static_init_8u(%struct.ident_t* nocapture nofree readonly, i32, i32* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64, i64)
1523
1524; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1525; OPTIMISTIC-NEXT: declare void @__kmpc_dist_for_static_init_4(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32, i32)
1526
1527; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1528; OPTIMISTIC-NEXT: declare void @__kmpc_dist_for_static_init_4u(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32, i32)
1529
1530; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1531; OPTIMISTIC-NEXT: declare void @__kmpc_dist_for_static_init_8(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64, i64)
1532
1533; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1534; OPTIMISTIC-NEXT: declare void @__kmpc_dist_for_static_init_8u(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64, i64)
1535
1536; OPTIMISTIC: ; Function Attrs: convergent nounwind
1537; OPTIMISTIC-NEXT: declare i32 @__kmpc_single(%struct.ident_t* nocapture nofree readonly, i32)
1538
1539; OPTIMISTIC: ; Function Attrs: convergent nounwind
1540; OPTIMISTIC-NEXT: declare void @__kmpc_end_single(%struct.ident_t* nocapture nofree readonly, i32)
1541
1542; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1543; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_omp_task_alloc(%struct.ident_t* nocapture nofree readonly, i32, i32, i64, i64, i32 (i32, i8*)* nocapture nofree readonly)
1544
1545; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1546; OPTIMISTIC-NEXT: declare i32 @__kmpc_omp_task(%struct.ident_t* nocapture nofree readonly, i32, i8*)
1547
1548; OPTIMISTIC: ; Function Attrs: convergent nounwind
1549; OPTIMISTIC-NEXT: declare void @__kmpc_end_taskgroup(%struct.ident_t* nocapture nofree readonly, i32)
1550
1551; OPTIMISTIC: ; Function Attrs: convergent nounwind
1552; OPTIMISTIC-NEXT: declare void @__kmpc_taskgroup(%struct.ident_t* nocapture nofree readonly, i32)
1553
1554; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1555; OPTIMISTIC-NEXT: declare void @__kmpc_dist_dispatch_init_4(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i32, i32, i32, i32)
1556
1557; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1558; OPTIMISTIC-NEXT: declare void @__kmpc_dist_dispatch_init_4u(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i32, i32, i32, i32)
1559
1560; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1561; OPTIMISTIC-NEXT: declare void @__kmpc_dist_dispatch_init_8(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i64, i64, i64, i64)
1562
1563; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1564; OPTIMISTIC-NEXT: declare void @__kmpc_dist_dispatch_init_8u(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i64, i64, i64, i64)
1565
1566; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1567; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_init_4(%struct.ident_t* nocapture nofree readonly, i32, i32, i32, i32, i32, i32)
1568
1569; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1570; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_init_4u(%struct.ident_t* nocapture nofree readonly, i32, i32, i32, i32, i32, i32)
1571
1572; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1573; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_init_8(%struct.ident_t* nocapture nofree readonly, i32, i32, i64, i64, i64, i64)
1574
1575; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1576; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_init_8u(%struct.ident_t* nocapture nofree readonly, i32, i32, i64, i64, i64, i64)
1577
1578; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1579; OPTIMISTIC-NEXT: declare i32 @__kmpc_dispatch_next_4(%struct.ident_t* nocapture nofree readonly, i32, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree)
1580
1581; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1582; OPTIMISTIC-NEXT: declare i32 @__kmpc_dispatch_next_4u(%struct.ident_t* nocapture nofree readonly, i32, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree, i32* nocapture nofree)
1583
1584; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1585; OPTIMISTIC-NEXT: declare i32 @__kmpc_dispatch_next_8(%struct.ident_t* nocapture nofree readonly, i32, i32* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree)
1586
1587; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1588; OPTIMISTIC-NEXT: declare i32 @__kmpc_dispatch_next_8u(%struct.ident_t* nocapture nofree readonly, i32, i32* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree, i64* nocapture nofree)
1589
1590; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1591; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_fini_4(%struct.ident_t* nocapture nofree readonly, i32)
1592
1593; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1594; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_fini_4u(%struct.ident_t* nocapture nofree readonly, i32)
1595
1596; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1597; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_fini_8(%struct.ident_t* nocapture nofree readonly, i32)
1598
1599; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1600; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_fini_8u(%struct.ident_t* nocapture nofree readonly, i32)
1601
1602; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1603; OPTIMISTIC-NEXT: declare void @__kmpc_omp_task_begin_if0(%struct.ident_t* nocapture nofree readonly, i32, i8*)
1604
1605; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1606; OPTIMISTIC-NEXT: declare void @__kmpc_omp_task_complete_if0(%struct.ident_t* nocapture nofree readonly, i32, i8*)
1607
1608; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1609; OPTIMISTIC-NEXT: declare i32 @__kmpc_omp_task_with_deps(%struct.ident_t* nocapture nofree readonly, i32, i8*, i32, i8* nocapture nofree readonly, i32, i8* nocapture nofree readonly)
1610
1611; OPTIMISTIC: ; Function Attrs: convergent nounwind
1612; OPTIMISTIC-NEXT: declare void @__kmpc_omp_wait_deps(%struct.ident_t* nocapture nofree readonly, i32, i32, i8* nocapture nofree readonly, i32, i8*)
1613
1614; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1615; OPTIMISTIC-NEXT: declare i32 @__kmpc_cancellationpoint(%struct.ident_t* nocapture nofree readonly, i32, i32)
1616
1617; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1618; OPTIMISTIC-NEXT: declare void @__kmpc_push_num_teams(%struct.ident_t* nocapture nofree readonly, i32, i32, i32)
1619
1620; OPTIMISTIC: ; Function Attrs: nounwind
1621; OPTIMISTIC-NEXT: declare void @__kmpc_fork_teams(%struct.ident_t* nocapture nofree readonly, i32, void (i32*, i32*, ...)* nocapture nofree readonly, ...)
1622
1623; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1624; OPTIMISTIC-NEXT: declare void @__kmpc_taskloop(%struct.ident_t* nocapture nofree readonly, i32, i8*, i32, i64* nocapture nofree, i64* nocapture nofree, i64, i32, i32, i64, i8*)
1625
1626; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1627; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_omp_target_task_alloc(%struct.ident_t* nocapture nofree readonly, i32, i32, i64, i64, i32 (i32, i8*)* nocapture nofree readonly, i64)
1628
1629; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1630; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_taskred_modifier_init(%struct.ident_t* nocapture nofree readonly, i32, i32, i32, i8*)
1631
1632; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1633; OPTIMISTIC-NEXT: declare i8* @__kmpc_taskred_init(i32, i32, i8*)
1634
1635; OPTIMISTIC: ; Function Attrs: convergent nounwind
1636; OPTIMISTIC-NEXT: declare void @__kmpc_task_reduction_modifier_fini(%struct.ident_t* nocapture nofree readonly, i32, i32)
1637
1638; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1639; OPTIMISTIC-NEXT: declare void @__kmpc_copyprivate(%struct.ident_t* nocapture nofree readonly, i32, i64, i8* nocapture nofree readonly, void (i8*, i8*)*, i32)
1640
1641; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1642; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_threadprivate_cached(%struct.ident_t* nocapture nofree readonly, i32, i8*, i64, i8***)
1643
1644; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1645; OPTIMISTIC-NEXT: declare void @__kmpc_threadprivate_register(%struct.ident_t* nocapture nofree readonly, i8*, i8* (i8*)* nocapture nofree readonly, i8* (i8*, i8*)* nocapture nofree readonly, void (i8*)* nocapture nofree readonly)
1646
1647; OPTIMISTIC: ; Function Attrs: convergent nounwind
1648; OPTIMISTIC-NEXT: declare void @__kmpc_doacross_init(%struct.ident_t* nocapture nofree readonly, i32, i32, i8*)
1649
1650; OPTIMISTIC: ; Function Attrs: convergent nounwind
1651; OPTIMISTIC-NEXT: declare void @__kmpc_doacross_wait(%struct.ident_t* nocapture nofree readonly, i32, i64* nocapture nofree readonly)
1652
1653; OPTIMISTIC: ; Function Attrs: convergent nounwind
1654; OPTIMISTIC-NEXT: declare void @__kmpc_doacross_post(%struct.ident_t* nocapture nofree readonly, i32, i64* nocapture nofree readonly)
1655
1656; OPTIMISTIC: ; Function Attrs: convergent nounwind
1657; OPTIMISTIC-NEXT: declare void @__kmpc_doacross_fini(%struct.ident_t* nocapture nofree readonly, i32)
1658
1659; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1660; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_alloc(i32, i64, i8*)
1661
1662; OPTIMISTIC: ; Function Attrs: nosync nounwind willreturn
1663; OPTIMISTIC-NEXT: declare void @__kmpc_free(i32, i8*, i8*)
1664
1665; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1666; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_init_allocator(i32, i8*, i32, i8*)
1667
1668; OPTIMISTIC: ; Function Attrs: nosync nounwind willreturn
1669; OPTIMISTIC-NEXT: declare void @__kmpc_destroy_allocator(i32, i8*)
1670
1671; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn writeonly
1672; OPTIMISTIC-NEXT: declare void @__kmpc_push_target_tripcount_mapper(%struct.ident_t*, i64, i64)
1673
1674; OPTIMISTIC: ; Function Attrs: convergent nounwind
1675; OPTIMISTIC-NEXT: declare i32 @__kmpc_warp_active_thread_mask()
1676
1677; OPTIMISTIC: ; Function Attrs: convergent nounwind
1678; OPTIMISTIC-NEXT: declare void @__kmpc_syncwarp(i32)
1679
1680; OPTIMISTIC: ; Function Attrs: nounwind
1681; OPTIMISTIC-NEXT: declare i32 @__tgt_target_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1682
1683; OPTIMISTIC: ; Function Attrs: nounwind
1684; OPTIMISTIC-NEXT: declare i32 @__tgt_target_nowait_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1685
1686; OPTIMISTIC: ; Function Attrs: nounwind
1687; OPTIMISTIC-NEXT: declare i32 @__tgt_target_teams_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i32)
1688
1689; OPTIMISTIC: ; Function Attrs: nounwind
1690; OPTIMISTIC-NEXT: declare i32 @__tgt_target_teams_nowait_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i32)
1691
1692; OPTIMISTIC: ; Function Attrs: nounwind
1693; OPTIMISTIC-NEXT: declare void @__tgt_register_requires(i64)
1694
1695; OPTIMISTIC: ; Function Attrs: nounwind
1696; OPTIMISTIC-NEXT: declare void @__tgt_target_data_begin_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1697
1698; OPTIMISTIC: ; Function Attrs: nounwind
1699; OPTIMISTIC-NEXT: declare void @__tgt_target_data_begin_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1700
1701; OPTIMISTIC: ; Function Attrs: nounwind
1702; OPTIMISTIC-NEXT: declare void @__tgt_target_data_end_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1703
1704; OPTIMISTIC: ; Function Attrs: nounwind
1705; OPTIMISTIC-NEXT: declare void @__tgt_target_data_end_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1706
1707; OPTIMISTIC: ; Function Attrs: nounwind
1708; OPTIMISTIC-NEXT: declare void @__tgt_target_data_update_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1709
1710; OPTIMISTIC: ; Function Attrs: nounwind
1711; OPTIMISTIC-NEXT: declare void @__tgt_target_data_update_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1712
1713; OPTIMISTIC: ; Function Attrs: nounwind
1714; OPTIMISTIC-NEXT: declare i64 @__tgt_mapper_num_components(i8*)
1715
1716; OPTIMISTIC: ; Function Attrs: nounwind
1717; OPTIMISTIC-NEXT: declare void @__tgt_push_mapper_component(i8*, i8*, i8*, i64, i64, i8*)
1718
1719; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1720; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_task_allow_completion_event(%struct.ident_t* nocapture nofree readonly, i32, i8*)
1721
1722; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1723; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_task_reduction_get_th_data(i32, i8*, i8*)
1724
1725; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1726; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_task_reduction_init(i32, i32, i8*)
1727
1728; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1729; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_task_reduction_modifier_init(i8*, i32, i32, i32, i8*)
1730
1731; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1732; OPTIMISTIC-NEXT: declare void @__kmpc_proxy_task_completed_ooo(i8*)
1733