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