[sanitizer] Improve FreeBSD ASLR detection
[llvm-project.git] / llvm / test / Transforms / OpenMP / add_attributes.ll
blob049b0c8da3450cdf2894a632a5cb482059930c48
1 ; RUN: opt < %s -S -openmp-opt-cgscc        | FileCheck %s
2 ; RUN: opt < %s -S -passes=openmp-opt-cgscc | FileCheck %s
3 ; RUN: opt < %s -S -openmp-opt-cgscc        -openmp-ir-builder-optimistic-attributes | FileCheck %s --check-prefix=OPTIMISTIC
4 ; RUN: opt < %s -S -passes=openmp-opt-cgscc -openmp-ir-builder-optimistic-attributes | FileCheck %s --check-prefix=OPTIMISTIC
5 target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
7 %struct.omp_lock_t = type { i8* }
8 %struct.omp_nest_lock_t = type { i8* }
9 %struct.ident_t = type { i32, i32, i32, i32, i8* }
11 define 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) {
12 entry:
13   %schedule.addr = alloca i32, align 4
14   %lock.addr = alloca %struct.omp_lock_t*, align 8
15   %lock_hint.addr = alloca i32, align 4
16   %nest_lock.addr = alloca %struct.omp_nest_lock_t*, align 8
17   %i.addr = alloca i32, align 4
18   %s.addr = alloca i8*, align 8
19   %st.addr = alloca i64, align 8
20   %vp.addr = alloca i8*, align 8
21   %d.addr = alloca double, align 8
22   %proc_bind.addr = alloca i32, align 4
23   %allocator_handle.addr = alloca i64, align 8
24   %cp.addr = alloca i8*, align 8
25   %event_handle.addr = alloca i64, align 8
26   %pause_resource.addr = alloca i32, align 4
27   store i32 %schedule, i32* %schedule.addr, align 4
28   store %struct.omp_lock_t* %lock, %struct.omp_lock_t** %lock.addr, align 8
29   store i32 %lock_hint, i32* %lock_hint.addr, align 4
30   store %struct.omp_nest_lock_t* %nest_lock, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
31   store i32 %i, i32* %i.addr, align 4
32   store i8* %s, i8** %s.addr, align 8
33   store i64 %st, i64* %st.addr, align 8
34   store i8* %vp, i8** %vp.addr, align 8
35   store double %d, double* %d.addr, align 8
36   store i32 %proc_bind, i32* %proc_bind.addr, align 4
37   store i64 %allocator_handle, i64* %allocator_handle.addr, align 8
38   store i8* %cp, i8** %cp.addr, align 8
39   store i64 %event_handle, i64* %event_handle.addr, align 8
40   store i32 %pause_resource, i32* %pause_resource.addr, align 4
41   call void @omp_set_num_threads(i32 0)
42   call void @omp_set_dynamic(i32 0)
43   call void @omp_set_nested(i32 0)
44   call void @omp_set_max_active_levels(i32 0)
45   %0 = load i32, i32* %schedule.addr, align 4
46   call void @omp_set_schedule(i32 %0, i32 0)
47   %call = call i32 @omp_get_num_threads()
48   store i32 %call, i32* %i.addr, align 4
49   %1 = load i32, i32* %i.addr, align 4
50   call void @use_int(i32 %1)
51   %call1 = call i32 @omp_get_dynamic()
52   store i32 %call1, i32* %i.addr, align 4
53   %2 = load i32, i32* %i.addr, align 4
54   call void @use_int(i32 %2)
55   %call2 = call i32 @omp_get_nested()
56   store i32 %call2, i32* %i.addr, align 4
57   %3 = load i32, i32* %i.addr, align 4
58   call void @use_int(i32 %3)
59   %call3 = call i32 @omp_get_max_threads()
60   store i32 %call3, i32* %i.addr, align 4
61   %4 = load i32, i32* %i.addr, align 4
62   call void @use_int(i32 %4)
63   %call4 = call i32 @omp_get_thread_num()
64   store i32 %call4, i32* %i.addr, align 4
65   %5 = load i32, i32* %i.addr, align 4
66   call void @use_int(i32 %5)
67   %call5 = call i32 @omp_get_num_procs()
68   store i32 %call5, i32* %i.addr, align 4
69   %6 = load i32, i32* %i.addr, align 4
70   call void @use_int(i32 %6)
71   %call6 = call i32 @omp_in_parallel()
72   store i32 %call6, i32* %i.addr, align 4
73   %7 = load i32, i32* %i.addr, align 4
74   call void @use_int(i32 %7)
75   %call7 = call i32 @omp_in_final()
76   store i32 %call7, i32* %i.addr, align 4
77   %8 = load i32, i32* %i.addr, align 4
78   call void @use_int(i32 %8)
79   %call8 = call i32 @omp_get_active_level()
80   store i32 %call8, i32* %i.addr, align 4
81   %9 = load i32, i32* %i.addr, align 4
82   call void @use_int(i32 %9)
83   %call9 = call i32 @omp_get_level()
84   store i32 %call9, i32* %i.addr, align 4
85   %10 = load i32, i32* %i.addr, align 4
86   call void @use_int(i32 %10)
87   %call10 = call i32 @omp_get_ancestor_thread_num(i32 0)
88   store i32 %call10, i32* %i.addr, align 4
89   %11 = load i32, i32* %i.addr, align 4
90   call void @use_int(i32 %11)
91   %call11 = call i32 @omp_get_team_size(i32 0)
92   store i32 %call11, i32* %i.addr, align 4
93   %12 = load i32, i32* %i.addr, align 4
94   call void @use_int(i32 %12)
95   %call12 = call i32 @omp_get_thread_limit()
96   store i32 %call12, i32* %i.addr, align 4
97   %13 = load i32, i32* %i.addr, align 4
98   call void @use_int(i32 %13)
99   %call13 = call i32 @omp_get_max_active_levels()
100   store i32 %call13, i32* %i.addr, align 4
101   %14 = load i32, i32* %i.addr, align 4
102   call void @use_int(i32 %14)
103   call void @omp_get_schedule(i32* %schedule.addr, i32* %i.addr)
104   %call14 = call i32 @omp_get_max_task_priority()
105   store i32 %call14, i32* %i.addr, align 4
106   %15 = load i32, i32* %i.addr, align 4
107   call void @use_int(i32 %15)
108   %16 = load %struct.omp_lock_t*, %struct.omp_lock_t** %lock.addr, align 8
109   call void @omp_init_lock(%struct.omp_lock_t* %16)
110   %17 = load %struct.omp_lock_t*, %struct.omp_lock_t** %lock.addr, align 8
111   call void @omp_set_lock(%struct.omp_lock_t* %17)
112   %18 = load %struct.omp_lock_t*, %struct.omp_lock_t** %lock.addr, align 8
113   call void @omp_unset_lock(%struct.omp_lock_t* %18)
114   %19 = load %struct.omp_lock_t*, %struct.omp_lock_t** %lock.addr, align 8
115   call void @omp_destroy_lock(%struct.omp_lock_t* %19)
116   %20 = load %struct.omp_lock_t*, %struct.omp_lock_t** %lock.addr, align 8
117   %call15 = call i32 @omp_test_lock(%struct.omp_lock_t* %20)
118   store i32 %call15, i32* %i.addr, align 4
119   %21 = load i32, i32* %i.addr, align 4
120   call void @use_int(i32 %21)
121   %22 = load %struct.omp_nest_lock_t*, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
122   call void @omp_init_nest_lock(%struct.omp_nest_lock_t* %22)
123   %23 = load %struct.omp_nest_lock_t*, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
124   call void @omp_set_nest_lock(%struct.omp_nest_lock_t* %23)
125   %24 = load %struct.omp_nest_lock_t*, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
126   call void @omp_unset_nest_lock(%struct.omp_nest_lock_t* %24)
127   %25 = load %struct.omp_nest_lock_t*, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
128   call void @omp_destroy_nest_lock(%struct.omp_nest_lock_t* %25)
129   %26 = load %struct.omp_nest_lock_t*, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
130   %call16 = call i32 @omp_test_nest_lock(%struct.omp_nest_lock_t* %26)
131   store i32 %call16, i32* %i.addr, align 4
132   %27 = load i32, i32* %i.addr, align 4
133   call void @use_int(i32 %27)
134   %28 = load %struct.omp_lock_t*, %struct.omp_lock_t** %lock.addr, align 8
135   %29 = load i32, i32* %lock_hint.addr, align 4
136   call void @omp_init_lock_with_hint(%struct.omp_lock_t* %28, i32 %29)
137   %30 = load %struct.omp_nest_lock_t*, %struct.omp_nest_lock_t** %nest_lock.addr, align 8
138   %31 = load i32, i32* %lock_hint.addr, align 4
139   call void @omp_init_nest_lock_with_hint(%struct.omp_nest_lock_t* %30, i32 %31)
140   %call17 = call double @omp_get_wtime()
141   store double %call17, double* %d.addr, align 8
142   %32 = load double, double* %d.addr, align 8
143   call void @use_double(double %32)
144   %call18 = call double @omp_get_wtick()
145   store double %call18, double* %d.addr, align 8
146   %33 = load double, double* %d.addr, align 8
147   call void @use_double(double %33)
148   %call19 = call i32 @omp_get_default_device()
149   store i32 %call19, i32* %i.addr, align 4
150   %34 = load i32, i32* %i.addr, align 4
151   call void @use_int(i32 %34)
152   call void @omp_set_default_device(i32 0)
153   %call20 = call i32 @omp_is_initial_device()
154   store i32 %call20, i32* %i.addr, align 4
155   %35 = load i32, i32* %i.addr, align 4
156   call void @use_int(i32 %35)
157   %call21 = call i32 @omp_get_num_devices()
158   store i32 %call21, i32* %i.addr, align 4
159   %36 = load i32, i32* %i.addr, align 4
160   call void @use_int(i32 %36)
161   %call22 = call i32 @omp_get_num_teams()
162   store i32 %call22, i32* %i.addr, align 4
163   %37 = load i32, i32* %i.addr, align 4
164   call void @use_int(i32 %37)
165   %call23 = call i32 @omp_get_team_num()
166   store i32 %call23, i32* %i.addr, align 4
167   %38 = load i32, i32* %i.addr, align 4
168   call void @use_int(i32 %38)
169   %call24 = call i32 @omp_get_cancellation()
170   store i32 %call24, i32* %i.addr, align 4
171   %39 = load i32, i32* %i.addr, align 4
172   call void @use_int(i32 %39)
173   %call25 = call i32 @omp_get_initial_device()
174   store i32 %call25, i32* %i.addr, align 4
175   %40 = load i32, i32* %i.addr, align 4
176   call void @use_int(i32 %40)
177   %41 = load i64, i64* %st.addr, align 8
178   %42 = load i32, i32* %i.addr, align 4
179   %call26 = call i8* @omp_target_alloc(i64 %41, i32 %42)
180   store i8* %call26, i8** %vp.addr, align 8
181   %43 = load i8*, i8** %vp.addr, align 8
182   call void @use_voidptr(i8* %43)
183   %44 = load i8*, i8** %vp.addr, align 8
184   %45 = load i32, i32* %i.addr, align 4
185   call void @omp_target_free(i8* %44, i32 %45)
186   %46 = load i8*, i8** %vp.addr, align 8
187   %47 = load i32, i32* %i.addr, align 4
188   %call27 = call i32 @omp_target_is_present(i8* %46, i32 %47)
189   store i32 %call27, i32* %i.addr, align 4
190   %48 = load i32, i32* %i.addr, align 4
191   call void @use_int(i32 %48)
192   %49 = load i8*, i8** %vp.addr, align 8
193   %50 = load i8*, i8** %vp.addr, align 8
194   %51 = load i64, i64* %st.addr, align 8
195   %52 = load i64, i64* %st.addr, align 8
196   %53 = load i64, i64* %st.addr, align 8
197   %54 = load i32, i32* %i.addr, align 4
198   %55 = load i32, i32* %i.addr, align 4
199   %call28 = call i32 @omp_target_memcpy(i8* %49, i8* %50, i64 %51, i64 %52, i64 %53, i32 %54, i32 %55)
200   store i32 %call28, i32* %i.addr, align 4
201   %56 = load i32, i32* %i.addr, align 4
202   call void @use_int(i32 %56)
203   %57 = load i8*, i8** %vp.addr, align 8
204   %58 = load i8*, i8** %vp.addr, align 8
205   %59 = load i64, i64* %st.addr, align 8
206   %60 = load i64, i64* %st.addr, align 8
207   %61 = load i32, i32* %i.addr, align 4
208   %call29 = call i32 @omp_target_associate_ptr(i8* %57, i8* %58, i64 %59, i64 %60, i32 %61)
209   store i32 %call29, i32* %i.addr, align 4
210   %62 = load i32, i32* %i.addr, align 4
211   call void @use_int(i32 %62)
212   %63 = load i8*, i8** %vp.addr, align 8
213   %64 = load i32, i32* %i.addr, align 4
214   %call30 = call i32 @omp_target_disassociate_ptr(i8* %63, i32 %64)
215   store i32 %call30, i32* %i.addr, align 4
216   %65 = load i32, i32* %i.addr, align 4
217   call void @use_int(i32 %65)
218   %call31 = call i32 @omp_get_device_num()
219   store i32 %call31, i32* %i.addr, align 4
220   %66 = load i32, i32* %i.addr, align 4
221   call void @use_int(i32 %66)
222   %call32 = call i32 @omp_get_proc_bind()
223   store i32 %call32, i32* %proc_bind.addr, align 4
224   %call33 = call i32 @omp_get_num_places()
225   store i32 %call33, i32* %i.addr, align 4
226   %67 = load i32, i32* %i.addr, align 4
227   call void @use_int(i32 %67)
228   %call34 = call i32 @omp_get_place_num_procs(i32 0)
229   store i32 %call34, i32* %i.addr, align 4
230   %68 = load i32, i32* %i.addr, align 4
231   call void @use_int(i32 %68)
232   %69 = load i32, i32* %i.addr, align 4
233   call void @omp_get_place_proc_ids(i32 %69, i32* %i.addr)
234   %call35 = call i32 @omp_get_place_num()
235   store i32 %call35, i32* %i.addr, align 4
236   %70 = load i32, i32* %i.addr, align 4
237   call void @use_int(i32 %70)
238   %call36 = call i32 @omp_get_partition_num_places()
239   store i32 %call36, i32* %i.addr, align 4
240   %71 = load i32, i32* %i.addr, align 4
241   call void @use_int(i32 %71)
242   call void @omp_get_partition_place_nums(i32* %i.addr)
243   %72 = load i32, i32* %i.addr, align 4
244   %73 = load i32, i32* %i.addr, align 4
245   %74 = load i8*, i8** %vp.addr, align 8
246   %call37 = call i32 @omp_control_tool(i32 %72, i32 %73, i8* %74)
247   store i32 %call37, i32* %i.addr, align 4
248   %75 = load i32, i32* %i.addr, align 4
249   call void @use_int(i32 %75)
250   %76 = load i64, i64* %allocator_handle.addr, align 8
251   call void @omp_destroy_allocator(i64 %76)
252   %77 = load i64, i64* %allocator_handle.addr, align 8
253   call void @omp_set_default_allocator(i64 %77)
254   %call38 = call i64 @omp_get_default_allocator()
255   store i64 %call38, i64* %allocator_handle.addr, align 8
256   %78 = load i64, i64* %st.addr, align 8
257   %79 = load i64, i64* %allocator_handle.addr, align 8
258   %call39 = call i8* @omp_alloc(i64 %78, i64 %79)
259   store i8* %call39, i8** %vp.addr, align 8
260   %80 = load i8*, i8** %vp.addr, align 8
261   call void @use_voidptr(i8* %80)
262   %81 = load i8*, i8** %vp.addr, align 8
263   %82 = load i64, i64* %allocator_handle.addr, align 8
264   call void @omp_free(i8* %81, i64 %82)
265   %83 = load i64, i64* %st.addr, align 8
266   %84 = load i64, i64* %allocator_handle.addr, align 8
267   %call40 = call i8* @omp_alloc(i64 %83, i64 %84)
268   store i8* %call40, i8** %vp.addr, align 8
269   %85 = load i8*, i8** %vp.addr, align 8
270   call void @use_voidptr(i8* %85)
271   %86 = load i8*, i8** %vp.addr, align 8
272   %87 = load i64, i64* %allocator_handle.addr, align 8
273   call void @omp_free(i8* %86, i64 %87)
274   %88 = load i8*, i8** %s.addr, align 8
275   call void @ompc_set_affinity_format(i8* %88)
276   %89 = load i8*, i8** %cp.addr, align 8
277   %90 = load i64, i64* %st.addr, align 8
278   %call41 = call i64 @ompc_get_affinity_format(i8* %89, i64 %90)
279   store i64 %call41, i64* %st.addr, align 8
280   %91 = load i64, i64* %st.addr, align 8
281   call void @use_sizet(i64 %91)
282   %92 = load i8*, i8** %s.addr, align 8
283   call void @ompc_display_affinity(i8* %92)
284   %93 = load i8*, i8** %cp.addr, align 8
285   %94 = load i64, i64* %st.addr, align 8
286   %95 = load i8*, i8** %s.addr, align 8
287   %call42 = call i64 @ompc_capture_affinity(i8* %93, i64 %94, i8* %95)
288   store i64 %call42, i64* %st.addr, align 8
289   %96 = load i64, i64* %st.addr, align 8
290   call void @use_sizet(i64 %96)
291   %97 = load i64, i64* %event_handle.addr, align 8
292   call void @omp_fulfill_event(i64 %97)
293   %98 = load i32, i32* %pause_resource.addr, align 4
294   %99 = load i32, i32* %i.addr, align 4
295   %call43 = call i32 @omp_pause_resource(i32 %98, i32 %99)
296   store i32 %call43, i32* %i.addr, align 4
297   %100 = load i32, i32* %i.addr, align 4
298   call void @use_int(i32 %100)
299   %101 = load i32, i32* %pause_resource.addr, align 4
300   %call44 = call i32 @omp_pause_resource_all(i32 %101)
301   store i32 %call44, i32* %i.addr, align 4
302   %102 = load i32, i32* %i.addr, align 4
303   call void @use_int(i32 %102)
304   %call45 = call i32 @omp_get_supported_active_levels()
305   store i32 %call45, i32* %i.addr, align 4
306   %103 = load i32, i32* %i.addr, align 4
307   call void @use_int(i32 %103)
308   ret void
311 declare dso_local void @omp_set_num_threads(i32)
313 declare dso_local void @omp_set_dynamic(i32)
315 declare dso_local void @omp_set_nested(i32)
317 declare dso_local void @omp_set_max_active_levels(i32)
319 declare dso_local void @omp_set_schedule(i32, i32)
321 declare dso_local i32 @omp_get_num_threads()
323 declare dso_local void @use_int(i32)
325 declare dso_local i32 @omp_get_dynamic()
327 declare dso_local i32 @omp_get_nested()
329 declare dso_local i32 @omp_get_max_threads()
331 declare dso_local i32 @omp_get_thread_num()
333 declare dso_local i32 @omp_get_num_procs()
335 declare dso_local i32 @omp_in_parallel()
337 declare dso_local i32 @omp_in_final()
339 declare dso_local i32 @omp_get_active_level()
341 declare dso_local i32 @omp_get_level()
343 declare dso_local i32 @omp_get_ancestor_thread_num(i32)
345 declare dso_local i32 @omp_get_team_size(i32)
347 declare dso_local i32 @omp_get_thread_limit()
349 declare dso_local i32 @omp_get_max_active_levels()
351 declare dso_local void @omp_get_schedule(i32*, i32*)
353 declare dso_local i32 @omp_get_max_task_priority()
355 declare dso_local void @omp_init_lock(%struct.omp_lock_t*)
357 declare dso_local void @omp_set_lock(%struct.omp_lock_t*)
359 declare dso_local void @omp_unset_lock(%struct.omp_lock_t*)
361 declare dso_local void @omp_destroy_lock(%struct.omp_lock_t*)
363 declare dso_local i32 @omp_test_lock(%struct.omp_lock_t*)
365 declare dso_local void @omp_init_nest_lock(%struct.omp_nest_lock_t*)
367 declare dso_local void @omp_set_nest_lock(%struct.omp_nest_lock_t*)
369 declare dso_local void @omp_unset_nest_lock(%struct.omp_nest_lock_t*)
371 declare dso_local void @omp_destroy_nest_lock(%struct.omp_nest_lock_t*)
373 declare dso_local i32 @omp_test_nest_lock(%struct.omp_nest_lock_t*)
375 declare dso_local void @omp_init_lock_with_hint(%struct.omp_lock_t*, i32)
377 declare dso_local void @omp_init_nest_lock_with_hint(%struct.omp_nest_lock_t*, i32)
379 declare dso_local double @omp_get_wtime()
381 declare dso_local void @use_double(double)
383 declare dso_local double @omp_get_wtick()
385 declare dso_local i32 @omp_get_default_device()
387 declare dso_local void @omp_set_default_device(i32)
389 declare dso_local i32 @omp_is_initial_device()
391 declare dso_local i32 @omp_get_num_devices()
393 declare dso_local i32 @omp_get_num_teams()
395 declare dso_local i32 @omp_get_team_num()
397 declare dso_local i32 @omp_get_cancellation()
399 declare dso_local i32 @omp_get_initial_device()
401 declare dso_local i8* @omp_target_alloc(i64, i32)
403 declare dso_local void @use_voidptr(i8*)
405 declare dso_local void @omp_target_free(i8*, i32)
407 declare dso_local i32 @omp_target_is_present(i8*, i32)
409 declare dso_local i32 @omp_target_memcpy(i8*, i8*, i64, i64, i64, i32, i32)
411 declare dso_local i32 @omp_target_associate_ptr(i8*, i8*, i64, i64, i32)
413 declare dso_local i32 @omp_target_disassociate_ptr(i8*, i32)
415 declare dso_local i32 @omp_get_device_num()
417 declare dso_local i32 @omp_get_proc_bind()
419 declare dso_local i32 @omp_get_num_places()
421 declare dso_local i32 @omp_get_place_num_procs(i32)
423 declare dso_local void @omp_get_place_proc_ids(i32, i32*)
425 declare dso_local i32 @omp_get_place_num()
427 declare dso_local i32 @omp_get_partition_num_places()
429 declare dso_local void @omp_get_partition_place_nums(i32*)
431 declare dso_local i32 @omp_control_tool(i32, i32, i8*)
433 declare dso_local void @omp_destroy_allocator(i64)
435 declare dso_local void @omp_set_default_allocator(i64)
437 declare dso_local i64 @omp_get_default_allocator()
439 declare dso_local i8* @omp_alloc(i64, i64)
441 declare dso_local void @omp_free(i8*, i64)
443 declare dso_local void @ompc_set_affinity_format(i8*)
445 declare dso_local i64 @ompc_get_affinity_format(i8*, i64)
447 declare dso_local void @use_sizet(i64)
449 declare dso_local void @ompc_display_affinity(i8*)
451 declare dso_local i64 @ompc_capture_affinity(i8*, i64, i8*)
453 declare dso_local void @omp_fulfill_event(i64)
455 declare dso_local i32 @omp_pause_resource(i32, i32)
457 declare dso_local i32 @omp_pause_resource_all(i32)
459 declare dso_local i32 @omp_get_supported_active_levels()
461 declare void @__kmpc_barrier(%struct.ident_t*, i32)
463 declare i32 @__kmpc_cancel(%struct.ident_t*, i32, i32)
465 declare i32 @__kmpc_cancel_barrier(%struct.ident_t*, i32)
467 declare void @__kmpc_flush(%struct.ident_t*)
469 declare i32 @__kmpc_global_thread_num(%struct.ident_t*)
471 declare void @__kmpc_fork_call(%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...)
473 declare i32 @__kmpc_omp_taskwait(%struct.ident_t*, i32)
475 declare i32 @__kmpc_omp_taskyield(%struct.ident_t*, i32, i32)
477 declare void @__kmpc_push_num_threads(%struct.ident_t*, i32, i32)
479 declare void @__kmpc_push_proc_bind(%struct.ident_t*, i32, i32)
481 declare void @__kmpc_serialized_parallel(%struct.ident_t*, i32)
483 declare void @__kmpc_end_serialized_parallel(%struct.ident_t*, i32)
485 declare i32 @__kmpc_master(%struct.ident_t*, i32)
487 declare void @__kmpc_end_master(%struct.ident_t*, i32)
489 declare void @__kmpc_critical(%struct.ident_t*, i32, [8 x i32]*)
491 declare void @__kmpc_critical_with_hint(%struct.ident_t*, i32, [8 x i32]*, i32)
493 declare void @__kmpc_end_critical(%struct.ident_t*, i32, [8 x i32]*)
495 declare void @__kmpc_begin(%struct.ident_t*, i32)
497 declare void @__kmpc_end(%struct.ident_t*)
499 declare i32 @__kmpc_reduce(%struct.ident_t*, i32, i32, i64, i8*, void (i8*, i8*)*, [8 x i32]*)
501 declare i32 @__kmpc_reduce_nowait(%struct.ident_t*, i32, i32, i64, i8*, void (i8*, i8*)*, [8 x i32]*)
503 declare void @__kmpc_end_reduce(%struct.ident_t*, i32, [8 x i32]*)
505 declare void @__kmpc_end_reduce_nowait(%struct.ident_t*, i32, [8 x i32]*)
507 declare void @__kmpc_ordered(%struct.ident_t*, i32)
509 declare void @__kmpc_end_ordered(%struct.ident_t*, i32)
511 declare void @__kmpc_for_static_init_4(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32, i32)
513 declare void @__kmpc_for_static_init_4u(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32, i32)
515 declare void @__kmpc_for_static_init_8(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64, i64)
517 declare void @__kmpc_for_static_init_8u(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64, i64)
519 declare void @__kmpc_for_static_fini(%struct.ident_t*, i32)
521 declare void @__kmpc_team_static_init_4(%struct.ident_t*, i32, i32*, i32*, i32*, i32*, i32, i32)
523 declare void @__kmpc_team_static_init_4u(%struct.ident_t*, i32, i32*, i32*, i32*, i32*, i32, i32)
525 declare void @__kmpc_team_static_init_8(%struct.ident_t*, i32, i32*, i64*, i64*, i64*, i64, i64)
527 declare void @__kmpc_team_static_init_8u(%struct.ident_t*, i32, i32*, i64*, i64*, i64*, i64, i64)
529 declare void @__kmpc_dist_for_static_init_4(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32*, i32, i32)
531 declare void @__kmpc_dist_for_static_init_4u(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32*, i32, i32)
533 declare void @__kmpc_dist_for_static_init_8(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64*, i64, i64)
535 declare void @__kmpc_dist_for_static_init_8u(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64*, i64, i64)
537 declare i32 @__kmpc_single(%struct.ident_t*, i32)
539 declare void @__kmpc_end_single(%struct.ident_t*, i32)
541 declare i8* @__kmpc_omp_task_alloc(%struct.ident_t*, i32, i32, i64, i64, i32 (i32, i8*)*)
543 declare i32 @__kmpc_omp_task(%struct.ident_t*, i32, i8*)
545 declare void @__kmpc_end_taskgroup(%struct.ident_t*, i32)
547 declare void @__kmpc_taskgroup(%struct.ident_t*, i32)
549 declare void @__kmpc_dist_dispatch_init_4(%struct.ident_t*, i32, i32, i32*, i32, i32, i32, i32)
551 declare void @__kmpc_dist_dispatch_init_4u(%struct.ident_t*, i32, i32, i32*, i32, i32, i32, i32)
553 declare void @__kmpc_dist_dispatch_init_8(%struct.ident_t*, i32, i32, i32*, i64, i64, i64, i64)
555 declare void @__kmpc_dist_dispatch_init_8u(%struct.ident_t*, i32, i32, i32*, i64, i64, i64, i64)
557 declare void @__kmpc_dispatch_init_4(%struct.ident_t*, i32, i32, i32, i32, i32, i32)
559 declare void @__kmpc_dispatch_init_4u(%struct.ident_t*, i32, i32, i32, i32, i32, i32)
561 declare void @__kmpc_dispatch_init_8(%struct.ident_t*, i32, i32, i64, i64, i64, i64)
563 declare void @__kmpc_dispatch_init_8u(%struct.ident_t*, i32, i32, i64, i64, i64, i64)
565 declare i32 @__kmpc_dispatch_next_4(%struct.ident_t*, i32, i32*, i32*, i32*, i32*)
567 declare i32 @__kmpc_dispatch_next_4u(%struct.ident_t*, i32, i32*, i32*, i32*, i32*)
569 declare i32 @__kmpc_dispatch_next_8(%struct.ident_t*, i32, i32*, i64*, i64*, i64*)
571 declare i32 @__kmpc_dispatch_next_8u(%struct.ident_t*, i32, i32*, i64*, i64*, i64*)
573 declare void @__kmpc_dispatch_fini_4(%struct.ident_t*, i32)
575 declare void @__kmpc_dispatch_fini_4u(%struct.ident_t*, i32)
577 declare void @__kmpc_dispatch_fini_8(%struct.ident_t*, i32)
579 declare void @__kmpc_dispatch_fini_8u(%struct.ident_t*, i32)
581 declare void @__kmpc_omp_task_begin_if0(%struct.ident_t*, i32, i8*)
583 declare void @__kmpc_omp_task_complete_if0(%struct.ident_t*, i32, i8*)
585 declare i32 @__kmpc_omp_task_with_deps(%struct.ident_t*, i32, i8*, i32, i8*, i32, i8*)
587 declare void @__kmpc_omp_wait_deps(%struct.ident_t*, i32, i32, i8*, i32, i8*)
589 declare i32 @__kmpc_cancellationpoint(%struct.ident_t*, i32, i32)
591 declare void @__kmpc_push_num_teams(%struct.ident_t*, i32, i32, i32)
593 declare void @__kmpc_fork_teams(%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...)
595 declare void @__kmpc_taskloop(%struct.ident_t*, i32, i8*, i32, i64*, i64*, i64, i32, i32, i64, i8*)
597 declare i8* @__kmpc_omp_target_task_alloc(%struct.ident_t*, i32, i32, i64, i64, i32 (i32, i8*)*, i64)
599 declare i8* @__kmpc_taskred_modifier_init(%struct.ident_t*, i32, i32, i32, i8*)
601 declare i8* @__kmpc_taskred_init(i32, i32, i8*)
603 declare void @__kmpc_task_reduction_modifier_fini(%struct.ident_t*, i32, i32)
605 declare void @__kmpc_copyprivate(%struct.ident_t*, i32, i64, i8*, void (i8*, i8*)*, i32)
607 declare i8* @__kmpc_threadprivate_cached(%struct.ident_t*, i32, i8*, i64, i8***)
609 declare void @__kmpc_threadprivate_register(%struct.ident_t*, i8*, i8* (i8*)*, i8* (i8*, i8*)*, void (i8*)*)
611 declare void @__kmpc_doacross_init(%struct.ident_t*, i32, i32, i8*)
613 declare void @__kmpc_doacross_wait(%struct.ident_t*, i32, i64*)
615 declare void @__kmpc_doacross_post(%struct.ident_t*, i32, i64*)
617 declare void @__kmpc_doacross_fini(%struct.ident_t*, i32)
619 declare i8* @__kmpc_alloc(i32, i64, i8*)
621 declare void @__kmpc_free(i32, i8*, i8*)
623 declare i8* @__kmpc_init_allocator(i32, i8*, i32, i8*)
625 declare void @__kmpc_destroy_allocator(i32, i8*)
627 declare void @__kmpc_push_target_tripcount_mapper(%struct.ident_t*, i64, i64)
629 declare i64 @__kmpc_warp_active_thread_mask()
631 declare void @__kmpc_syncwarp(i64)
633 declare i32 @__tgt_target_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**)
635 declare i32 @__tgt_target_nowait_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i8*, i32, i8*)
637 declare i32 @__tgt_target_teams_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i32)
639 declare i32 @__tgt_target_teams_nowait_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i32, i32, i8*, i32, i8*)
641 declare void @__tgt_register_requires(i64)
643 declare void @__tgt_target_data_begin_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
645 declare void @__tgt_target_data_begin_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
647 declare void @__tgt_target_data_end_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
649 declare void @__tgt_target_data_end_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
651 declare void @__tgt_target_data_update_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
653 declare void @__tgt_target_data_update_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
655 declare i64 @__tgt_mapper_num_components(i8*)
657 declare void @__tgt_push_mapper_component(i8*, i8*, i8*, i64, i64, i8*)
659 declare i8* @__kmpc_task_allow_completion_event(%struct.ident_t*, i32, i8*)
661 declare i8* @__kmpc_task_reduction_get_th_data(i32, i8*, i8*)
663 declare i8* @__kmpc_task_reduction_init(i32, i32, i8*)
665 declare i8* @__kmpc_task_reduction_modifier_init(i8*, i32, i32, i32, i8*)
667 declare void @__kmpc_proxy_task_completed_ooo(i8*)
669 ; Function Attrs: noinline cold
670 declare void @__kmpc_barrier_simple_spmd(%struct.ident_t* nocapture nofree readonly, i32) #0
672 attributes #0 = { noinline cold }
674 ; CHECK: ; Function Attrs: nounwind
675 ; CHECK-NEXT: declare dso_local void @omp_set_num_threads(i32)
677 ; CHECK: ; Function Attrs: nounwind
678 ; CHECK-NEXT: declare dso_local void @omp_set_dynamic(i32)
680 ; CHECK: ; Function Attrs: nounwind
681 ; CHECK-NEXT: declare dso_local void @omp_set_nested(i32)
683 ; CHECK: ; Function Attrs: nounwind
684 ; CHECK-NEXT: declare dso_local void @omp_set_max_active_levels(i32)
686 ; CHECK: ; Function Attrs: nounwind
687 ; CHECK-NEXT: declare dso_local void @omp_set_schedule(i32, i32)
689 ; CHECK: ; Function Attrs: nounwind
690 ; CHECK-NEXT: declare dso_local i32 @omp_get_num_threads()
692 ; CHECK-NOT: Function Attrs
693 ; CHECK: declare dso_local void @use_int(i32)
695 ; CHECK: ; Function Attrs: nounwind
696 ; CHECK-NEXT: declare dso_local i32 @omp_get_dynamic()
698 ; CHECK: ; Function Attrs: nounwind
699 ; CHECK-NEXT: declare dso_local i32 @omp_get_nested()
701 ; CHECK: ; Function Attrs: nounwind
702 ; CHECK-NEXT: declare dso_local i32 @omp_get_max_threads()
704 ; CHECK: ; Function Attrs: nounwind
705 ; CHECK-NEXT: declare dso_local i32 @omp_get_thread_num()
707 ; CHECK: ; Function Attrs: nounwind
708 ; CHECK-NEXT: declare dso_local i32 @omp_get_num_procs()
710 ; CHECK: ; Function Attrs: nounwind
711 ; CHECK-NEXT: declare dso_local i32 @omp_in_parallel()
713 ; CHECK: ; Function Attrs: nounwind
714 ; CHECK-NEXT: declare dso_local i32 @omp_in_final()
716 ; CHECK: ; Function Attrs: nounwind
717 ; CHECK-NEXT: declare dso_local i32 @omp_get_active_level()
719 ; CHECK: ; Function Attrs: nounwind
720 ; CHECK-NEXT: declare dso_local i32 @omp_get_level()
722 ; CHECK: ; Function Attrs: nounwind
723 ; CHECK-NEXT: declare dso_local i32 @omp_get_ancestor_thread_num(i32)
725 ; CHECK: ; Function Attrs: nounwind
726 ; CHECK-NEXT: declare dso_local i32 @omp_get_team_size(i32)
728 ; CHECK: ; Function Attrs: nounwind
729 ; CHECK-NEXT: declare dso_local i32 @omp_get_thread_limit()
731 ; CHECK: ; Function Attrs: nounwind
732 ; CHECK-NEXT: declare dso_local i32 @omp_get_max_active_levels()
734 ; CHECK: ; Function Attrs: nounwind
735 ; CHECK-NEXT: declare dso_local void @omp_get_schedule(i32* nocapture writeonly, i32* nocapture writeonly)
737 ; CHECK-NOT: Function Attrs
738 ; CHECK: declare dso_local i32 @omp_get_max_task_priority()
740 ; CHECK-NOT: Function Attrs
741 ; CHECK: declare dso_local void @omp_init_lock(%struct.omp_lock_t*)
743 ; CHECK-NOT: Function Attrs
744 ; CHECK: declare dso_local void @omp_set_lock(%struct.omp_lock_t*)
746 ; CHECK-NOT: Function Attrs
747 ; CHECK: declare dso_local void @omp_unset_lock(%struct.omp_lock_t*)
749 ; CHECK-NOT: Function Attrs
750 ; CHECK: declare dso_local void @omp_destroy_lock(%struct.omp_lock_t*)
752 ; CHECK-NOT: Function Attrs
753 ; CHECK: declare dso_local i32 @omp_test_lock(%struct.omp_lock_t*)
755 ; CHECK-NOT: Function Attrs
756 ; CHECK: declare dso_local void @omp_init_nest_lock(%struct.omp_nest_lock_t*)
758 ; CHECK-NOT: Function Attrs
759 ; CHECK: declare dso_local void @omp_set_nest_lock(%struct.omp_nest_lock_t*)
761 ; CHECK-NOT: Function Attrs
762 ; CHECK: declare dso_local void @omp_unset_nest_lock(%struct.omp_nest_lock_t*)
764 ; CHECK-NOT: Function Attrs
765 ; CHECK: declare dso_local void @omp_destroy_nest_lock(%struct.omp_nest_lock_t*)
767 ; CHECK-NOT: Function Attrs
768 ; CHECK: declare dso_local i32 @omp_test_nest_lock(%struct.omp_nest_lock_t*)
770 ; CHECK-NOT: Function Attrs
771 ; CHECK: declare dso_local void @omp_init_lock_with_hint(%struct.omp_lock_t*, i32)
773 ; CHECK-NOT: Function Attrs
774 ; CHECK: declare dso_local void @omp_init_nest_lock_with_hint(%struct.omp_nest_lock_t*, i32)
776 ; CHECK-NOT: Function Attrs
777 ; CHECK: declare dso_local double @omp_get_wtime()
779 ; CHECK-NOT: Function Attrs
780 ; CHECK: declare dso_local void @use_double(double)
782 ; CHECK-NOT: Function Attrs
783 ; CHECK: declare dso_local double @omp_get_wtick()
785 ; CHECK-NOT: Function Attrs
786 ; CHECK: declare dso_local i32 @omp_get_default_device()
788 ; CHECK-NOT: Function Attrs
789 ; CHECK: declare dso_local void @omp_set_default_device(i32)
791 ; CHECK-NOT: Function Attrs
792 ; CHECK: declare dso_local i32 @omp_is_initial_device()
794 ; CHECK-NOT: Function Attrs
795 ; CHECK: declare dso_local i32 @omp_get_num_devices()
797 ; CHECK-NOT: Function Attrs
798 ; CHECK: declare dso_local i32 @omp_get_num_teams()
800 ; CHECK-NOT: Function Attrs
801 ; CHECK: declare dso_local i32 @omp_get_team_num()
803 ; CHECK: ; Function Attrs: nounwind
804 ; CHECK-NEXT: declare dso_local i32 @omp_get_cancellation()
806 ; CHECK-NOT: Function Attrs
807 ; CHECK: declare dso_local i32 @omp_get_initial_device()
809 ; CHECK-NOT: Function Attrs
810 ; CHECK: declare dso_local i8* @omp_target_alloc(i64, i32)
812 ; CHECK-NOT: Function Attrs
813 ; CHECK: declare dso_local void @use_voidptr(i8*)
815 ; CHECK-NOT: Function Attrs
816 ; CHECK: declare dso_local void @omp_target_free(i8*, i32)
818 ; CHECK-NOT: Function Attrs
819 ; CHECK: declare dso_local i32 @omp_target_is_present(i8*, i32)
821 ; CHECK-NOT: Function Attrs
822 ; CHECK: declare dso_local i32 @omp_target_memcpy(i8*, i8*, i64, i64, i64, i32, i32)
824 ; CHECK-NOT: Function Attrs
825 ; CHECK: declare dso_local i32 @omp_target_associate_ptr(i8*, i8*, i64, i64, i32)
827 ; CHECK-NOT: Function Attrs
828 ; CHECK: declare dso_local i32 @omp_target_disassociate_ptr(i8*, i32)
830 ; CHECK-NOT: Function Attrs
831 ; CHECK: declare dso_local i32 @omp_get_device_num()
833 ; CHECK: ; Function Attrs: nounwind
834 ; CHECK-NEXT: declare dso_local i32 @omp_get_proc_bind()
836 ; CHECK: ; Function Attrs: nounwind
837 ; CHECK-NEXT: declare dso_local i32 @omp_get_num_places()
839 ; CHECK-NOT: Function Attrs
840 ; CHECK: declare dso_local i32 @omp_get_place_num_procs(i32)
842 ; CHECK: ; Function Attrs: nounwind
843 ; CHECK-NEXT: declare dso_local void @omp_get_place_proc_ids(i32, i32* nocapture writeonly)
845 ; CHECK: ; Function Attrs: nounwind
846 ; CHECK-NEXT: declare dso_local i32 @omp_get_place_num()
848 ; CHECK: ; Function Attrs: nounwind
849 ; CHECK-NEXT: declare dso_local i32 @omp_get_partition_num_places()
851 ; CHECK: ; Function Attrs: nounwind
852 ; CHECK-NEXT: declare dso_local void @omp_get_partition_place_nums(i32*)
854 ; CHECK-NOT: Function Attrs
855 ; CHECK: declare dso_local i32 @omp_control_tool(i32, i32, i8*)
857 ; CHECK-NOT: Function Attrs
858 ; CHECK: declare dso_local void @omp_destroy_allocator(i64)
860 ; CHECK-NOT: Function Attrs
861 ; CHECK: declare dso_local void @omp_set_default_allocator(i64)
863 ; CHECK-NOT: Function Attrs
864 ; CHECK: declare dso_local i64 @omp_get_default_allocator()
866 ; CHECK-NOT: Function Attrs
867 ; CHECK: declare dso_local i8* @omp_alloc(i64, i64)
869 ; CHECK-NOT: Function Attrs
870 ; CHECK: declare dso_local void @omp_free(i8*, i64)
872 ; CHECK-NOT: Function Attrs
873 ; CHECK: declare dso_local void @ompc_set_affinity_format(i8*)
875 ; CHECK-NOT: Function Attrs
876 ; CHECK: declare dso_local i64 @ompc_get_affinity_format(i8*, i64)
878 ; CHECK-NOT: Function Attrs
879 ; CHECK: declare dso_local void @use_sizet(i64)
881 ; CHECK-NOT: Function Attrs
882 ; CHECK: declare dso_local void @ompc_display_affinity(i8*)
884 ; CHECK-NOT: Function Attrs
885 ; CHECK: declare dso_local i64 @ompc_capture_affinity(i8*, i64, i8*)
887 ; CHECK-NOT: Function Attrs
888 ; CHECK: declare dso_local void @omp_fulfill_event(i64)
890 ; CHECK-NOT: Function Attrs
891 ; CHECK: declare dso_local i32 @omp_pause_resource(i32, i32)
893 ; CHECK-NOT: Function Attrs
894 ; CHECK: declare dso_local i32 @omp_pause_resource_all(i32)
896 ; CHECK: ; Function Attrs: nounwind
897 ; CHECK-NEXT: declare dso_local i32 @omp_get_supported_active_levels()
899 ; CHECK: ; Function Attrs: convergent nounwind
900 ; CHECK-NEXT: declare void @__kmpc_barrier(%struct.ident_t*, i32)
902 ; CHECK: ; Function Attrs: nounwind
903 ; CHECK-NEXT: declare i32 @__kmpc_cancel(%struct.ident_t*, i32, i32)
905 ; CHECK: ; Function Attrs: convergent nounwind
906 ; CHECK-NEXT: declare i32 @__kmpc_cancel_barrier(%struct.ident_t*, i32)
908 ; CHECK: ; Function Attrs: convergent nounwind
909 ; CHECK-NEXT: declare void @__kmpc_flush(%struct.ident_t*)
911 ; CHECK: ; Function Attrs: nounwind
912 ; CHECK-NEXT: declare i32 @__kmpc_global_thread_num(%struct.ident_t*)
914 ; CHECK: ; Function Attrs: nounwind
915 ; CHECK-NEXT: declare void @__kmpc_fork_call(%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...)
917 ; CHECK: ; Function Attrs: convergent nounwind
918 ; CHECK-NEXT: declare i32 @__kmpc_omp_taskwait(%struct.ident_t*, i32)
920 ; CHECK: ; Function Attrs: nounwind
921 ; CHECK-NEXT: declare i32 @__kmpc_omp_taskyield(%struct.ident_t*, i32, i32)
923 ; CHECK: ; Function Attrs: nounwind
924 ; CHECK-NEXT: declare void @__kmpc_push_num_threads(%struct.ident_t*, i32, i32)
926 ; CHECK: ; Function Attrs: nounwind
927 ; CHECK-NEXT: declare void @__kmpc_push_proc_bind(%struct.ident_t*, i32, i32)
929 ; CHECK: ; Function Attrs: nounwind
930 ; CHECK-NEXT: declare void @__kmpc_serialized_parallel(%struct.ident_t*, i32)
932 ; CHECK: ; Function Attrs: nounwind
933 ; CHECK-NEXT: declare void @__kmpc_end_serialized_parallel(%struct.ident_t*, i32)
935 ; CHECK: ; Function Attrs: nounwind
936 ; CHECK-NEXT: declare i32 @__kmpc_master(%struct.ident_t*, i32)
938 ; CHECK: ; Function Attrs: nounwind
939 ; CHECK-NEXT: declare void @__kmpc_end_master(%struct.ident_t*, i32)
941 ; CHECK: ; Function Attrs: convergent nounwind
942 ; CHECK-NEXT: declare void @__kmpc_critical(%struct.ident_t*, i32, [8 x i32]*)
944 ; CHECK: ; Function Attrs: convergent nounwind
945 ; CHECK-NEXT: declare void @__kmpc_critical_with_hint(%struct.ident_t*, i32, [8 x i32]*, i32)
947 ; CHECK: ; Function Attrs: convergent nounwind
948 ; CHECK-NEXT: declare void @__kmpc_end_critical(%struct.ident_t*, i32, [8 x i32]*)
950 ; CHECK: ; Function Attrs: nounwind
951 ; CHECK-NEXT: declare void @__kmpc_begin(%struct.ident_t*, i32)
953 ; CHECK: ; Function Attrs: nounwind
954 ; CHECK-NEXT: declare void @__kmpc_end(%struct.ident_t*)
956 ; CHECK: ; Function Attrs: convergent nounwind
957 ; CHECK-NEXT: declare i32 @__kmpc_reduce(%struct.ident_t*, i32, i32, i64, i8*, void (i8*, i8*)*, [8 x i32]*)
959 ; CHECK: ; Function Attrs: convergent nounwind
960 ; CHECK-NEXT: declare i32 @__kmpc_reduce_nowait(%struct.ident_t*, i32, i32, i64, i8*, void (i8*, i8*)*, [8 x i32]*)
962 ; CHECK: ; Function Attrs: convergent nounwind
963 ; CHECK-NEXT: declare void @__kmpc_end_reduce(%struct.ident_t*, i32, [8 x i32]*)
965 ; CHECK: ; Function Attrs: convergent nounwind
966 ; CHECK-NEXT: declare void @__kmpc_end_reduce_nowait(%struct.ident_t*, i32, [8 x i32]*)
968 ; CHECK: ; Function Attrs: convergent nounwind
969 ; CHECK-NEXT: declare void @__kmpc_ordered(%struct.ident_t*, i32)
971 ; CHECK: ; Function Attrs: convergent nounwind
972 ; CHECK-NEXT: declare void @__kmpc_end_ordered(%struct.ident_t*, i32)
974 ; CHECK: ; Function Attrs: nounwind
975 ; CHECK-NEXT: declare void @__kmpc_for_static_init_4(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32, i32)
977 ; CHECK: ; Function Attrs: nounwind
978 ; CHECK-NEXT: declare void @__kmpc_for_static_init_4u(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32, i32)
980 ; CHECK: ; Function Attrs: nounwind
981 ; CHECK-NEXT: declare void @__kmpc_for_static_init_8(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64, i64)
983 ; CHECK: ; Function Attrs: nounwind
984 ; CHECK-NEXT: declare void @__kmpc_for_static_init_8u(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64, i64)
986 ; CHECK: ; Function Attrs: nounwind
987 ; CHECK-NEXT: declare void @__kmpc_for_static_fini(%struct.ident_t*, i32)
989 ; CHECK: ; Function Attrs: nounwind
990 ; CHECK-NEXT: declare void @__kmpc_team_static_init_4(%struct.ident_t*, i32, i32*, i32*, i32*, i32*, i32, i32)
992 ; CHECK: ; Function Attrs: nounwind
993 ; CHECK-NEXT: declare void @__kmpc_team_static_init_4u(%struct.ident_t*, i32, i32*, i32*, i32*, i32*, i32, i32)
995 ; CHECK: ; Function Attrs: nounwind
996 ; CHECK-NEXT: declare void @__kmpc_team_static_init_8(%struct.ident_t*, i32, i32*, i64*, i64*, i64*, i64, i64)
998 ; CHECK: ; Function Attrs: nounwind
999 ; CHECK-NEXT: declare void @__kmpc_team_static_init_8u(%struct.ident_t*, i32, i32*, i64*, i64*, i64*, i64, i64)
1001 ; CHECK: ; Function Attrs: nounwind
1002 ; CHECK-NEXT: declare void @__kmpc_dist_for_static_init_4(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32*, i32, i32)
1004 ; CHECK: ; Function Attrs: nounwind
1005 ; CHECK-NEXT: declare void @__kmpc_dist_for_static_init_4u(%struct.ident_t*, i32, i32, i32*, i32*, i32*, i32*, i32*, i32, i32)
1007 ; CHECK: ; Function Attrs: nounwind
1008 ; CHECK-NEXT: declare void @__kmpc_dist_for_static_init_8(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64*, i64, i64)
1010 ; CHECK: ; Function Attrs: nounwind
1011 ; CHECK-NEXT: declare void @__kmpc_dist_for_static_init_8u(%struct.ident_t*, i32, i32, i32*, i64*, i64*, i64*, i64*, i64, i64)
1013 ; CHECK: ; Function Attrs: convergent nounwind
1014 ; CHECK-NEXT: declare i32 @__kmpc_single(%struct.ident_t*, i32)
1016 ; CHECK: ; Function Attrs: convergent nounwind
1017 ; CHECK-NEXT: declare void @__kmpc_end_single(%struct.ident_t*, i32)
1019 ; CHECK: ; Function Attrs: nounwind
1020 ; CHECK-NEXT: declare i8* @__kmpc_omp_task_alloc(%struct.ident_t*, i32, i32, i64, i64, i32 (i32, i8*)*)
1022 ; CHECK: ; Function Attrs: nounwind
1023 ; CHECK-NEXT: declare i32 @__kmpc_omp_task(%struct.ident_t*, i32, i8*)
1025 ; CHECK: ; Function Attrs: convergent nounwind
1026 ; CHECK-NEXT: declare void @__kmpc_end_taskgroup(%struct.ident_t*, i32)
1028 ; CHECK: ; Function Attrs: convergent nounwind
1029 ; CHECK-NEXT: declare void @__kmpc_taskgroup(%struct.ident_t*, i32)
1031 ; CHECK: ; Function Attrs: nounwind
1032 ; CHECK-NEXT: declare void @__kmpc_dist_dispatch_init_4(%struct.ident_t*, i32, i32, i32*, i32, i32, i32, i32)
1034 ; CHECK: ; Function Attrs: nounwind
1035 ; CHECK-NEXT: declare void @__kmpc_dist_dispatch_init_4u(%struct.ident_t*, i32, i32, i32*, i32, i32, i32, i32)
1037 ; CHECK: ; Function Attrs: nounwind
1038 ; CHECK-NEXT: declare void @__kmpc_dist_dispatch_init_8(%struct.ident_t*, i32, i32, i32*, i64, i64, i64, i64)
1040 ; CHECK: ; Function Attrs: nounwind
1041 ; CHECK-NEXT: declare void @__kmpc_dist_dispatch_init_8u(%struct.ident_t*, i32, i32, i32*, i64, i64, i64, i64)
1043 ; CHECK: ; Function Attrs: nounwind
1044 ; CHECK-NEXT: declare void @__kmpc_dispatch_init_4(%struct.ident_t*, i32, i32, i32, i32, i32, i32)
1046 ; CHECK: ; Function Attrs: nounwind
1047 ; CHECK-NEXT: declare void @__kmpc_dispatch_init_4u(%struct.ident_t*, i32, i32, i32, i32, i32, i32)
1049 ; CHECK: ; Function Attrs: nounwind
1050 ; CHECK-NEXT: declare void @__kmpc_dispatch_init_8(%struct.ident_t*, i32, i32, i64, i64, i64, i64)
1052 ; CHECK: ; Function Attrs: nounwind
1053 ; CHECK-NEXT: declare void @__kmpc_dispatch_init_8u(%struct.ident_t*, i32, i32, i64, i64, i64, i64)
1055 ; CHECK: ; Function Attrs: nounwind
1056 ; CHECK-NEXT: declare i32 @__kmpc_dispatch_next_4(%struct.ident_t*, i32, i32*, i32*, i32*, i32*)
1058 ; CHECK: ; Function Attrs: nounwind
1059 ; CHECK-NEXT: declare i32 @__kmpc_dispatch_next_4u(%struct.ident_t*, i32, i32*, i32*, i32*, i32*)
1061 ; CHECK: ; Function Attrs: nounwind
1062 ; CHECK-NEXT: declare i32 @__kmpc_dispatch_next_8(%struct.ident_t*, i32, i32*, i64*, i64*, i64*)
1064 ; CHECK: ; Function Attrs: nounwind
1065 ; CHECK-NEXT: declare i32 @__kmpc_dispatch_next_8u(%struct.ident_t*, i32, i32*, i64*, i64*, i64*)
1067 ; CHECK: ; Function Attrs: nounwind
1068 ; CHECK-NEXT: declare void @__kmpc_dispatch_fini_4(%struct.ident_t*, i32)
1070 ; CHECK: ; Function Attrs: nounwind
1071 ; CHECK-NEXT: declare void @__kmpc_dispatch_fini_4u(%struct.ident_t*, i32)
1073 ; CHECK: ; Function Attrs: nounwind
1074 ; CHECK-NEXT: declare void @__kmpc_dispatch_fini_8(%struct.ident_t*, i32)
1076 ; CHECK: ; Function Attrs: nounwind
1077 ; CHECK-NEXT: declare void @__kmpc_dispatch_fini_8u(%struct.ident_t*, i32)
1079 ; CHECK: ; Function Attrs: nounwind
1080 ; CHECK-NEXT: declare void @__kmpc_omp_task_begin_if0(%struct.ident_t*, i32, i8*)
1082 ; CHECK: ; Function Attrs: nounwind
1083 ; CHECK-NEXT: declare void @__kmpc_omp_task_complete_if0(%struct.ident_t*, i32, i8*)
1085 ; CHECK: ; Function Attrs: nounwind
1086 ; CHECK-NEXT: declare i32 @__kmpc_omp_task_with_deps(%struct.ident_t*, i32, i8*, i32, i8*, i32, i8*)
1088 ; CHECK: ; Function Attrs: convergent nounwind
1089 ; CHECK-NEXT: declare void @__kmpc_omp_wait_deps(%struct.ident_t*, i32, i32, i8*, i32, i8*)
1091 ; CHECK: ; Function Attrs: nounwind
1092 ; CHECK-NEXT: declare i32 @__kmpc_cancellationpoint(%struct.ident_t*, i32, i32)
1094 ; CHECK: ; Function Attrs: nounwind
1095 ; CHECK-NEXT: declare void @__kmpc_push_num_teams(%struct.ident_t*, i32, i32, i32)
1097 ; CHECK: ; Function Attrs: nounwind
1098 ; CHECK-NEXT: declare void @__kmpc_fork_teams(%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...)
1100 ; CHECK: ; Function Attrs: nounwind
1101 ; CHECK-NEXT: declare void @__kmpc_taskloop(%struct.ident_t*, i32, i8*, i32, i64*, i64*, i64, i32, i32, i64, i8*)
1103 ; CHECK: ; Function Attrs: nounwind
1104 ; CHECK-NEXT: declare i8* @__kmpc_omp_target_task_alloc(%struct.ident_t*, i32, i32, i64, i64, i32 (i32, i8*)*, i64)
1106 ; CHECK: ; Function Attrs: nounwind
1107 ; CHECK-NEXT: declare i8* @__kmpc_taskred_modifier_init(%struct.ident_t*, i32, i32, i32, i8*)
1109 ; CHECK: ; Function Attrs: nounwind
1110 ; CHECK-NEXT: declare i8* @__kmpc_taskred_init(i32, i32, i8*)
1112 ; CHECK: ; Function Attrs: convergent nounwind
1113 ; CHECK-NEXT: declare void @__kmpc_task_reduction_modifier_fini(%struct.ident_t*, i32, i32)
1115 ; CHECK: ; Function Attrs: nounwind
1116 ; CHECK-NEXT: declare void @__kmpc_copyprivate(%struct.ident_t*, i32, i64, i8*, void (i8*, i8*)*, i32)
1118 ; CHECK: ; Function Attrs: nounwind
1119 ; CHECK-NEXT: declare i8* @__kmpc_threadprivate_cached(%struct.ident_t*, i32, i8*, i64, i8***)
1121 ; CHECK: ; Function Attrs: nounwind
1122 ; CHECK-NEXT: declare void @__kmpc_threadprivate_register(%struct.ident_t*, i8*, i8* (i8*)*, i8* (i8*, i8*)*, void (i8*)*)
1124 ; CHECK: ; Function Attrs: convergent nounwind
1125 ; CHECK-NEXT: declare void @__kmpc_doacross_init(%struct.ident_t*, i32, i32, i8*)
1127 ; CHECK: ; Function Attrs: convergent nounwind
1128 ; CHECK-NEXT: declare void @__kmpc_doacross_wait(%struct.ident_t*, i32, i64*)
1130 ; CHECK: ; Function Attrs: convergent nounwind
1131 ; CHECK-NEXT: declare void @__kmpc_doacross_post(%struct.ident_t*, i32, i64*)
1133 ; CHECK: ; Function Attrs: convergent nounwind
1134 ; CHECK-NEXT: declare void @__kmpc_doacross_fini(%struct.ident_t*, i32)
1136 ; CHECK: ; Function Attrs: nounwind
1137 ; CHECK-NEXT: declare i8* @__kmpc_alloc(i32, i64, i8*)
1139 ; CHECK: ; Function Attrs: nounwind
1140 ; CHECK-NEXT: declare void @__kmpc_free(i32, i8*, i8*)
1142 ; CHECK: ; Function Attrs: nounwind
1143 ; CHECK-NEXT: declare i8* @__kmpc_init_allocator(i32, i8*, i32, i8*)
1145 ; CHECK: ; Function Attrs: nounwind
1146 ; CHECK-NEXT: declare void @__kmpc_destroy_allocator(i32, i8*)
1148 ; CHECK: ; Function Attrs: nounwind
1149 ; CHECK-NEXT: declare void @__kmpc_push_target_tripcount_mapper(%struct.ident_t*, i64, i64)
1151 ; CHECK: ; Function Attrs: convergent nounwind
1152 ; CHECK-NEXT: declare i64 @__kmpc_warp_active_thread_mask()
1154 ; CHECK: ; Function Attrs: convergent nounwind
1155 ; CHECK-NEXT: declare void @__kmpc_syncwarp(i64)
1157 ; CHECK: ; Function Attrs: nounwind
1158 ; CHECK-NEXT: declare i32 @__tgt_target_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1160 ; CHECK: ; Function Attrs: nounwind
1161 ; CHECK-NEXT: declare i32 @__tgt_target_nowait_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i8*, i32, i8*)
1163 ; CHECK: ; Function Attrs: nounwind
1164 ; CHECK-NEXT: declare i32 @__tgt_target_teams_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i32)
1166 ; CHECK: ; Function Attrs: nounwind
1167 ; CHECK-NEXT: declare i32 @__tgt_target_teams_nowait_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i32, i32, i8*, i32, i8*)
1169 ; CHECK: ; Function Attrs: nounwind
1170 ; CHECK-NEXT: declare void @__tgt_register_requires(i64)
1172 ; CHECK: ; Function Attrs: nounwind
1173 ; CHECK-NEXT: declare void @__tgt_target_data_begin_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1175 ; CHECK: ; Function Attrs: nounwind
1176 ; CHECK-NEXT: declare void @__tgt_target_data_begin_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1178 ; CHECK: ; Function Attrs: nounwind
1179 ; CHECK-NEXT: declare void @__tgt_target_data_end_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1181 ; CHECK: ; Function Attrs: nounwind
1182 ; CHECK-NEXT: declare void @__tgt_target_data_end_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1184 ; CHECK: ; Function Attrs: nounwind
1185 ; CHECK-NEXT: declare void @__tgt_target_data_update_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1187 ; CHECK: ; Function Attrs: nounwind
1188 ; CHECK-NEXT: declare void @__tgt_target_data_update_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1190 ; CHECK: ; Function Attrs: nounwind
1191 ; CHECK-NEXT: declare i64 @__tgt_mapper_num_components(i8*)
1193 ; CHECK: ; Function Attrs: nounwind
1194 ; CHECK-NEXT: declare void @__tgt_push_mapper_component(i8*, i8*, i8*, i64, i64, i8*)
1196 ; CHECK: ; Function Attrs: nounwind
1197 ; CHECK-NEXT: declare i8* @__kmpc_task_allow_completion_event(%struct.ident_t*, i32, i8*)
1199 ; CHECK: ; Function Attrs: nounwind
1200 ; CHECK-NEXT: declare i8* @__kmpc_task_reduction_get_th_data(i32, i8*, i8*)
1202 ; CHECK: ; Function Attrs: nounwind
1203 ; CHECK-NEXT: declare i8* @__kmpc_task_reduction_init(i32, i32, i8*)
1205 ; CHECK: ; Function Attrs: nounwind
1206 ; CHECK-NEXT: declare i8* @__kmpc_task_reduction_modifier_init(i8*, i32, i32, i32, i8*)
1208 ; CHECK: ; Function Attrs: nounwind
1209 ; CHECK-NEXT: declare void @__kmpc_proxy_task_completed_ooo(i8*)
1211 ; CHECK: ; Function Attrs: cold convergent nounwind
1212 ; CHECK-NEXT: declare void @__kmpc_barrier_simple_spmd(%struct.ident_t* nocapture nofree readonly, i32)
1214 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn writeonly
1215 ; OPTIMISTIC-NEXT: declare dso_local void @omp_set_num_threads(i32)
1217 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn writeonly
1218 ; OPTIMISTIC-NEXT: declare dso_local void @omp_set_dynamic(i32)
1220 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn writeonly
1221 ; OPTIMISTIC-NEXT: declare dso_local void @omp_set_nested(i32)
1223 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn writeonly
1224 ; OPTIMISTIC-NEXT: declare dso_local void @omp_set_max_active_levels(i32)
1226 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn writeonly
1227 ; OPTIMISTIC-NEXT: declare dso_local void @omp_set_schedule(i32, i32)
1229 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1230 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_num_threads()
1232 ; OPTIMISTIC-NOT: Function Attrs
1233 ; OPTIMISTIC: declare dso_local void @use_int(i32)
1235 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1236 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_dynamic()
1238 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1239 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_nested()
1241 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1242 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_max_threads()
1244 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1245 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_thread_num()
1247 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1248 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_num_procs()
1250 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1251 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_in_parallel()
1253 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1254 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_in_final()
1256 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1257 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_active_level()
1259 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1260 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_level()
1262 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1263 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_ancestor_thread_num(i32)
1265 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1266 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_team_size(i32)
1268 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1269 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_thread_limit()
1271 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1272 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_max_active_levels()
1274 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1275 ; OPTIMISTIC-NEXT: declare dso_local void @omp_get_schedule(i32* nocapture writeonly, i32* nocapture writeonly)
1277 ; OPTIMISTIC-NOT: Function Attrs
1278 ; OPTIMISTIC: declare dso_local i32 @omp_get_max_task_priority()
1280 ; OPTIMISTIC-NOT: Function Attrs
1281 ; OPTIMISTIC: declare dso_local void @omp_init_lock(%struct.omp_lock_t*)
1283 ; OPTIMISTIC-NOT: Function Attrs
1284 ; OPTIMISTIC: declare dso_local void @omp_set_lock(%struct.omp_lock_t*)
1286 ; OPTIMISTIC-NOT: Function Attrs
1287 ; OPTIMISTIC: declare dso_local void @omp_unset_lock(%struct.omp_lock_t*)
1289 ; OPTIMISTIC-NOT: Function Attrs
1290 ; OPTIMISTIC: declare dso_local void @omp_destroy_lock(%struct.omp_lock_t*)
1292 ; OPTIMISTIC-NOT: Function Attrs
1293 ; OPTIMISTIC: declare dso_local i32 @omp_test_lock(%struct.omp_lock_t*)
1295 ; OPTIMISTIC-NOT: Function Attrs
1296 ; OPTIMISTIC: declare dso_local void @omp_init_nest_lock(%struct.omp_nest_lock_t*)
1298 ; OPTIMISTIC-NOT: Function Attrs
1299 ; OPTIMISTIC: declare dso_local void @omp_set_nest_lock(%struct.omp_nest_lock_t*)
1301 ; OPTIMISTIC-NOT: Function Attrs
1302 ; OPTIMISTIC: declare dso_local void @omp_unset_nest_lock(%struct.omp_nest_lock_t*)
1304 ; OPTIMISTIC-NOT: Function Attrs
1305 ; OPTIMISTIC: declare dso_local void @omp_destroy_nest_lock(%struct.omp_nest_lock_t*)
1307 ; OPTIMISTIC-NOT: Function Attrs
1308 ; OPTIMISTIC: declare dso_local i32 @omp_test_nest_lock(%struct.omp_nest_lock_t*)
1310 ; OPTIMISTIC-NOT: Function Attrs
1311 ; OPTIMISTIC: declare dso_local void @omp_init_lock_with_hint(%struct.omp_lock_t*, i32)
1313 ; OPTIMISTIC-NOT: Function Attrs
1314 ; OPTIMISTIC: declare dso_local void @omp_init_nest_lock_with_hint(%struct.omp_nest_lock_t*, i32)
1316 ; OPTIMISTIC-NOT: Function Attrs
1317 ; OPTIMISTIC: declare dso_local double @omp_get_wtime()
1319 ; OPTIMISTIC-NOT: Function Attrs
1320 ; OPTIMISTIC: declare dso_local void @use_double(double)
1322 ; OPTIMISTIC-NOT: Function Attrs
1323 ; OPTIMISTIC: declare dso_local double @omp_get_wtick()
1325 ; OPTIMISTIC-NOT: Function Attrs
1326 ; OPTIMISTIC: declare dso_local i32 @omp_get_default_device()
1328 ; OPTIMISTIC-NOT: Function Attrs
1329 ; OPTIMISTIC: declare dso_local void @omp_set_default_device(i32)
1331 ; OPTIMISTIC-NOT: Function Attrs
1332 ; OPTIMISTIC: declare dso_local i32 @omp_is_initial_device()
1334 ; OPTIMISTIC-NOT: Function Attrs
1335 ; OPTIMISTIC: declare dso_local i32 @omp_get_num_devices()
1337 ; OPTIMISTIC-NOT: Function Attrs
1338 ; OPTIMISTIC: declare dso_local i32 @omp_get_num_teams()
1340 ; OPTIMISTIC-NOT: Function Attrs
1341 ; OPTIMISTIC: declare dso_local i32 @omp_get_team_num()
1343 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly
1344 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_cancellation()
1346 ; OPTIMISTIC-NOT: Function Attrs
1347 ; OPTIMISTIC: declare dso_local i32 @omp_get_initial_device()
1349 ; OPTIMISTIC-NOT: Function Attrs
1350 ; OPTIMISTIC: declare dso_local i8* @omp_target_alloc(i64, i32)
1352 ; OPTIMISTIC-NOT: Function Attrs
1353 ; OPTIMISTIC: declare dso_local void @use_voidptr(i8*)
1355 ; OPTIMISTIC-NOT: Function Attrs
1356 ; OPTIMISTIC: declare dso_local void @omp_target_free(i8*, i32)
1358 ; OPTIMISTIC-NOT: Function Attrs
1359 ; OPTIMISTIC: declare dso_local i32 @omp_target_is_present(i8*, i32)
1361 ; OPTIMISTIC-NOT: Function Attrs
1362 ; OPTIMISTIC: declare dso_local i32 @omp_target_memcpy(i8*, i8*, i64, i64, i64, i32, i32)
1364 ; OPTIMISTIC-NOT: Function Attrs
1365 ; OPTIMISTIC: declare dso_local i32 @omp_target_associate_ptr(i8*, i8*, i64, i64, i32)
1367 ; OPTIMISTIC-NOT: Function Attrs
1368 ; OPTIMISTIC: declare dso_local i32 @omp_target_disassociate_ptr(i8*, i32)
1370 ; OPTIMISTIC-NOT: Function Attrs
1371 ; OPTIMISTIC: declare dso_local i32 @omp_get_device_num()
1373 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly
1374 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_proc_bind()
1376 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly
1377 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_num_places()
1379 ; OPTIMISTIC-NOT: Function Attrs
1380 ; OPTIMISTIC: declare dso_local i32 @omp_get_place_num_procs(i32)
1382 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind
1383 ; OPTIMISTIC-NEXT: declare dso_local void @omp_get_place_proc_ids(i32, i32* nocapture writeonly)
1385 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly
1386 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_place_num()
1388 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly
1389 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_partition_num_places()
1391 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly
1392 ; OPTIMISTIC-NEXT: declare dso_local void @omp_get_partition_place_nums(i32*)
1394 ; OPTIMISTIC-NOT: Function Attrs
1395 ; OPTIMISTIC: declare dso_local i32 @omp_control_tool(i32, i32, i8*)
1397 ; OPTIMISTIC-NOT: Function Attrs
1398 ; OPTIMISTIC: declare dso_local void @omp_destroy_allocator(i64)
1400 ; OPTIMISTIC-NOT: Function Attrs
1401 ; OPTIMISTIC: declare dso_local void @omp_set_default_allocator(i64)
1403 ; OPTIMISTIC-NOT: Function Attrs
1404 ; OPTIMISTIC: declare dso_local i64 @omp_get_default_allocator()
1406 ; OPTIMISTIC-NOT: Function Attrs
1407 ; OPTIMISTIC: declare dso_local i8* @omp_alloc(i64, i64)
1409 ; OPTIMISTIC-NOT: Function Attrs
1410 ; OPTIMISTIC: declare dso_local void @omp_free(i8*, i64)
1412 ; OPTIMISTIC-NOT: Function Attrs
1413 ; OPTIMISTIC: declare dso_local void @ompc_set_affinity_format(i8*)
1415 ; OPTIMISTIC-NOT: Function Attrs
1416 ; OPTIMISTIC: declare dso_local i64 @ompc_get_affinity_format(i8*, i64)
1418 ; OPTIMISTIC-NOT: Function Attrs
1419 ; OPTIMISTIC: declare dso_local void @use_sizet(i64)
1421 ; OPTIMISTIC-NOT: Function Attrs
1422 ; OPTIMISTIC: declare dso_local void @ompc_display_affinity(i8*)
1424 ; OPTIMISTIC-NOT: Function Attrs
1425 ; OPTIMISTIC: declare dso_local i64 @ompc_capture_affinity(i8*, i64, i8*)
1427 ; OPTIMISTIC-NOT: Function Attrs
1428 ; OPTIMISTIC: declare dso_local void @omp_fulfill_event(i64)
1430 ; OPTIMISTIC-NOT: Function Attrs
1431 ; OPTIMISTIC: declare dso_local i32 @omp_pause_resource(i32, i32)
1433 ; OPTIMISTIC-NOT: Function Attrs
1434 ; OPTIMISTIC: declare dso_local i32 @omp_pause_resource_all(i32)
1436 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1437 ; OPTIMISTIC-NEXT: declare dso_local i32 @omp_get_supported_active_levels()
1439 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind readonly willreturn
1440 ; OPTIMISTIC-NEXT: declare i32 @__kmpc_global_thread_num(%struct.ident_t* nocapture nofree readonly)
1442 ; OPTIMISTIC: ; Function Attrs: nounwind
1443 ; OPTIMISTIC-NEXT: declare void @__kmpc_fork_call(%struct.ident_t* nocapture nofree readonly, i32, void (i32*, i32*, ...)* nocapture nofree readonly, ...)
1445 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1446 ; OPTIMISTIC-NEXT: declare i32 @__kmpc_omp_taskwait(%struct.ident_t* nocapture nofree readonly, i32)
1448 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1449 ; OPTIMISTIC-NEXT: declare i32 @__kmpc_omp_taskyield(%struct.ident_t* nocapture nofree readonly, i32, i32)
1451 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1452 ; OPTIMISTIC-NEXT: declare void @__kmpc_push_num_threads(%struct.ident_t* nocapture nofree readonly, i32, i32)
1454 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1455 ; OPTIMISTIC-NEXT: declare void @__kmpc_push_proc_bind(%struct.ident_t* nocapture nofree readonly, i32, i32)
1457 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1458 ; OPTIMISTIC-NEXT: declare void @__kmpc_serialized_parallel(%struct.ident_t* nocapture nofree readonly, i32)
1460 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1461 ; OPTIMISTIC-NEXT: declare void @__kmpc_end_serialized_parallel(%struct.ident_t* nocapture nofree readonly, i32)
1463 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1464 ; OPTIMISTIC-NEXT: declare i32 @__kmpc_master(%struct.ident_t* nocapture nofree readonly, i32)
1466 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1467 ; OPTIMISTIC-NEXT: declare void @__kmpc_end_master(%struct.ident_t* nocapture nofree readonly, i32)
1469 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1470 ; OPTIMISTIC-NEXT: declare void @__kmpc_critical(%struct.ident_t* nocapture nofree readonly, i32, [8 x i32]*)
1472 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1473 ; OPTIMISTIC-NEXT: declare void @__kmpc_critical_with_hint(%struct.ident_t* nocapture nofree readonly, i32, [8 x i32]*, i32)
1475 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1476 ; OPTIMISTIC-NEXT: declare void @__kmpc_end_critical(%struct.ident_t* nocapture nofree readonly, i32, [8 x i32]*)
1478 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1479 ; OPTIMISTIC-NEXT: declare void @__kmpc_begin(%struct.ident_t* nocapture nofree readonly, i32)
1481 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1482 ; OPTIMISTIC-NEXT: declare void @__kmpc_end(%struct.ident_t* nocapture nofree readonly)
1484 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1485 ; 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]*)
1487 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1488 ; 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]*)
1490 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1491 ; OPTIMISTIC-NEXT: declare void @__kmpc_end_reduce(%struct.ident_t* nocapture nofree readonly, i32, [8 x i32]*)
1493 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1494 ; OPTIMISTIC-NEXT: declare void @__kmpc_end_reduce_nowait(%struct.ident_t* nocapture nofree readonly, i32, [8 x i32]*)
1496 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1497 ; OPTIMISTIC-NEXT: declare void @__kmpc_ordered(%struct.ident_t* nocapture nofree readonly, i32)
1499 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1500 ; OPTIMISTIC-NEXT: declare void @__kmpc_end_ordered(%struct.ident_t* nocapture nofree readonly, i32)
1502 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1503 ; 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)
1505 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1506 ; 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)
1508 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1509 ; 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)
1511 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1512 ; 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)
1514 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1515 ; OPTIMISTIC-NEXT: declare void @__kmpc_for_static_fini(%struct.ident_t* nocapture nofree readonly, i32)
1517 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1518 ; 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)
1520 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1521 ; 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)
1523 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1524 ; 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)
1526 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1527 ; 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)
1529 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1530 ; 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)
1532 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1533 ; 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)
1535 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1536 ; 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)
1538 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1539 ; 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)
1541 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1542 ; OPTIMISTIC-NEXT: declare i32 @__kmpc_single(%struct.ident_t* nocapture nofree readonly, i32)
1544 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1545 ; OPTIMISTIC-NEXT: declare void @__kmpc_end_single(%struct.ident_t* nocapture nofree readonly, i32)
1547 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1548 ; 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)
1550 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1551 ; OPTIMISTIC-NEXT: declare i32 @__kmpc_omp_task(%struct.ident_t* nocapture nofree readonly, i32, i8*)
1553 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1554 ; OPTIMISTIC-NEXT: declare void @__kmpc_end_taskgroup(%struct.ident_t* nocapture nofree readonly, i32)
1556 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1557 ; OPTIMISTIC-NEXT: declare void @__kmpc_taskgroup(%struct.ident_t* nocapture nofree readonly, i32)
1559 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1560 ; OPTIMISTIC-NEXT: declare void @__kmpc_dist_dispatch_init_4(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i32, i32, i32, i32)
1562 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1563 ; OPTIMISTIC-NEXT: declare void @__kmpc_dist_dispatch_init_4u(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i32, i32, i32, i32)
1565 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1566 ; OPTIMISTIC-NEXT: declare void @__kmpc_dist_dispatch_init_8(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i64, i64, i64, i64)
1568 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1569 ; OPTIMISTIC-NEXT: declare void @__kmpc_dist_dispatch_init_8u(%struct.ident_t* nocapture nofree readonly, i32, i32, i32* nocapture nofree, i64, i64, i64, i64)
1571 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1572 ; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_init_4(%struct.ident_t* nocapture nofree readonly, i32, i32, i32, i32, i32, i32)
1574 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1575 ; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_init_4u(%struct.ident_t* nocapture nofree readonly, i32, i32, i32, i32, i32, i32)
1577 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1578 ; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_init_8(%struct.ident_t* nocapture nofree readonly, i32, i32, i64, i64, i64, i64)
1580 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1581 ; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_init_8u(%struct.ident_t* nocapture nofree readonly, i32, i32, i64, i64, i64, i64)
1583 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1584 ; 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)
1586 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1587 ; 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)
1589 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1590 ; 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)
1592 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1593 ; 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)
1595 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1596 ; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_fini_4(%struct.ident_t* nocapture nofree readonly, i32)
1598 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1599 ; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_fini_4u(%struct.ident_t* nocapture nofree readonly, i32)
1601 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1602 ; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_fini_8(%struct.ident_t* nocapture nofree readonly, i32)
1604 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1605 ; OPTIMISTIC-NEXT: declare void @__kmpc_dispatch_fini_8u(%struct.ident_t* nocapture nofree readonly, i32)
1607 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1608 ; OPTIMISTIC-NEXT: declare void @__kmpc_omp_task_begin_if0(%struct.ident_t* nocapture nofree readonly, i32, i8*)
1610 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1611 ; OPTIMISTIC-NEXT: declare void @__kmpc_omp_task_complete_if0(%struct.ident_t* nocapture nofree readonly, i32, i8*)
1613 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1614 ; 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)
1616 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1617 ; OPTIMISTIC-NEXT: declare void @__kmpc_omp_wait_deps(%struct.ident_t* nocapture nofree readonly, i32, i32, i8* nocapture nofree readonly, i32, i8*)
1619 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1620 ; OPTIMISTIC-NEXT: declare i32 @__kmpc_cancellationpoint(%struct.ident_t* nocapture nofree readonly, i32, i32)
1622 ; OPTIMISTIC: ; Function Attrs: inaccessiblemem_or_argmemonly nofree nosync nounwind willreturn
1623 ; OPTIMISTIC-NEXT: declare void @__kmpc_push_num_teams(%struct.ident_t* nocapture nofree readonly, i32, i32, i32)
1625 ; OPTIMISTIC: ; Function Attrs: nounwind
1626 ; OPTIMISTIC-NEXT: declare void @__kmpc_fork_teams(%struct.ident_t* nocapture nofree readonly, i32, void (i32*, i32*, ...)* nocapture nofree readonly, ...)
1628 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1629 ; 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*)
1631 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1632 ; 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)
1634 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1635 ; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_taskred_modifier_init(%struct.ident_t* nocapture nofree readonly, i32, i32, i32, i8*)
1637 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1638 ; OPTIMISTIC-NEXT: declare i8* @__kmpc_taskred_init(i32, i32, i8*)
1640 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1641 ; OPTIMISTIC-NEXT: declare void @__kmpc_task_reduction_modifier_fini(%struct.ident_t* nocapture nofree readonly, i32, i32)
1643 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1644 ; OPTIMISTIC-NEXT: declare void @__kmpc_copyprivate(%struct.ident_t* nocapture nofree readonly, i32, i64, i8* nocapture nofree readonly, void (i8*, i8*)*, i32)
1646 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1647 ; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_threadprivate_cached(%struct.ident_t* nocapture nofree readonly, i32, i8*, i64, i8***)
1649 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1650 ; 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)
1652 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1653 ; OPTIMISTIC-NEXT: declare void @__kmpc_doacross_init(%struct.ident_t* nocapture nofree readonly, i32, i32, i8*)
1655 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1656 ; OPTIMISTIC-NEXT: declare void @__kmpc_doacross_wait(%struct.ident_t* nocapture nofree readonly, i32, i64* nocapture nofree readonly)
1658 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1659 ; OPTIMISTIC-NEXT: declare void @__kmpc_doacross_post(%struct.ident_t* nocapture nofree readonly, i32, i64* nocapture nofree readonly)
1661 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1662 ; OPTIMISTIC-NEXT: declare void @__kmpc_doacross_fini(%struct.ident_t* nocapture nofree readonly, i32)
1664 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1665 ; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_alloc(i32, i64, i8*)
1667 ; OPTIMISTIC: ; Function Attrs: nosync nounwind willreturn
1668 ; OPTIMISTIC-NEXT: declare void @__kmpc_free(i32, i8*, i8*)
1670 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1671 ; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_init_allocator(i32, i8*, i32, i8*)
1673 ; OPTIMISTIC: ; Function Attrs: nosync nounwind willreturn
1674 ; OPTIMISTIC-NEXT: declare void @__kmpc_destroy_allocator(i32, i8*)
1676 ; OPTIMISTIC: ; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn writeonly
1677 ; OPTIMISTIC-NEXT: declare void @__kmpc_push_target_tripcount_mapper(%struct.ident_t*, i64, i64)
1679 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1680 ; OPTIMISTIC-NEXT: declare i64 @__kmpc_warp_active_thread_mask()
1682 ; OPTIMISTIC: ; Function Attrs: convergent nounwind
1683 ; OPTIMISTIC-NEXT: declare void @__kmpc_syncwarp(i64)
1685 ; OPTIMISTIC: ; Function Attrs: nounwind
1686 ; OPTIMISTIC-NEXT: declare i32 @__tgt_target_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1688 ; OPTIMISTIC: ; Function Attrs: nounwind
1689 ; OPTIMISTIC-NEXT: declare i32 @__tgt_target_nowait_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i8*, i32, i8*)
1691 ; OPTIMISTIC: ; Function Attrs: nounwind
1692 ; OPTIMISTIC-NEXT: declare i32 @__tgt_target_teams_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i32)
1694 ; OPTIMISTIC: ; Function Attrs: nounwind
1695 ; OPTIMISTIC-NEXT: declare i32 @__tgt_target_teams_nowait_mapper(%struct.ident_t*, i64, i8*, i32, i8**, i8**, i64*, i64*, i8**, i8**, i32, i32, i32, i8*, i32, i8*)
1697 ; OPTIMISTIC: ; Function Attrs: nounwind
1698 ; OPTIMISTIC-NEXT: declare void @__tgt_register_requires(i64)
1700 ; OPTIMISTIC: ; Function Attrs: nounwind
1701 ; OPTIMISTIC-NEXT: declare void @__tgt_target_data_begin_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1703 ; OPTIMISTIC: ; Function Attrs: nounwind
1704 ; OPTIMISTIC-NEXT: declare void @__tgt_target_data_begin_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1706 ; OPTIMISTIC: ; Function Attrs: nounwind
1707 ; OPTIMISTIC-NEXT: declare void @__tgt_target_data_end_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1709 ; OPTIMISTIC: ; Function Attrs: nounwind
1710 ; OPTIMISTIC-NEXT: declare void @__tgt_target_data_end_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1712 ; OPTIMISTIC: ; Function Attrs: nounwind
1713 ; OPTIMISTIC-NEXT: declare void @__tgt_target_data_update_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1715 ; OPTIMISTIC: ; Function Attrs: nounwind
1716 ; OPTIMISTIC-NEXT: declare void @__tgt_target_data_update_nowait_mapper(%struct.ident_t*, i64, i32, i8**, i8**, i64*, i64*, i8**, i8**)
1718 ; OPTIMISTIC: ; Function Attrs: nounwind
1719 ; OPTIMISTIC-NEXT: declare i64 @__tgt_mapper_num_components(i8*)
1721 ; OPTIMISTIC: ; Function Attrs: nounwind
1722 ; OPTIMISTIC-NEXT: declare void @__tgt_push_mapper_component(i8*, i8*, i8*, i64, i64, i8*)
1724 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1725 ; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_task_allow_completion_event(%struct.ident_t* nocapture nofree readonly, i32, i8*)
1727 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1728 ; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_task_reduction_get_th_data(i32, i8*, i8*)
1730 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1731 ; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_task_reduction_init(i32, i32, i8*)
1733 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1734 ; OPTIMISTIC-NEXT: declare noalias i8* @__kmpc_task_reduction_modifier_init(i8*, i32, i32, i32, i8*)
1736 ; OPTIMISTIC: ; Function Attrs: nofree nosync nounwind willreturn
1737 ; OPTIMISTIC-NEXT: declare void @__kmpc_proxy_task_completed_ooo(i8*)
1739 ; OPTIMISTIC: ; Function Attrs: cold convergent nounwind 
1740 ; OPTIMISTIC-NEXT: declare void @__kmpc_barrier_simple_spmd(%struct.ident_t* nocapture nofree readonly, i32)
1742 !llvm.module.flags = !{!0}
1744 !0 = !{i32 7, !"openmp", i32 50}