Revert r354244 "[DAGCombiner] Eliminate dead stores to stack."
[llvm-complete.git] / test / Transforms / InferFunctionAttrs / annotate.ll
blob161873be56e2b2e05b8e53dcb56d53d758915eda
1 ; RUN: opt < %s -mtriple=x86_64-- -inferattrs -S | FileCheck %s
2 ; RUN: opt < %s -mtriple=x86_64-- -passes=inferattrs -S | FileCheck %s
3 ; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -inferattrs -S | FileCheck -check-prefix=CHECK -check-prefix=CHECK-DARWIN %s
4 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -inferattrs -S | FileCheck -check-prefix=CHECK -check-prefix=CHECK-LINUX %s
5 ; RUN: opt < %s -mtriple=nvptx -inferattrs -S | FileCheck -check-prefix=CHECK-NVPTX %s
7 ; operator new routines
8 declare i8* @_Znwj(i64)
9 ; CHECK: declare noalias nonnull i8* @_Znwj(i64)
10 declare i8* @_Znwm(i64)
11 ; CHECK: declare noalias nonnull i8* @_Znwm(i64)
13 declare i32 @__nvvm_reflect(i8*)
14 ; CHECK-NVPTX: declare i32 @__nvvm_reflect(i8*) [[G0:#[0-9]+]]
15 ; CHECK-NVPTX: attributes [[G0]] = { nounwind readnone }
18 ; Check all the libc functions (thereby also exercising the prototype check).
19 ; Note that it's OK to modify these as attributes might be missing. These checks
20 ; reflect the currently inferred attributes.
22 ; Use an opaque pointer type for all the (possibly opaque) structs.
23 %opaque = type opaque
25 ; CHECK: declare double @__acos_finite(double)
26 declare double @__acos_finite(double)
28 ; CHECK: declare float @__acosf_finite(float)
29 declare float @__acosf_finite(float)
31 ; CHECK: declare double @__acosh_finite(double)
32 declare double @__acosh_finite(double)
34 ; CHECK: declare float @__acoshf_finite(float)
35 declare float @__acoshf_finite(float)
37 ; CHECK: declare x86_fp80 @__acoshl_finite(x86_fp80)
38 declare x86_fp80 @__acoshl_finite(x86_fp80)
40 ; CHECK: declare x86_fp80 @__acosl_finite(x86_fp80)
41 declare x86_fp80 @__acosl_finite(x86_fp80)
43 ; CHECK: declare double @__asin_finite(double)
44 declare double @__asin_finite(double)
46 ; CHECK: declare float @__asinf_finite(float)
47 declare float @__asinf_finite(float)
49 ; CHECK: declare x86_fp80 @__asinl_finite(x86_fp80)
50 declare x86_fp80 @__asinl_finite(x86_fp80)
52 ; CHECK: declare double @__atan2_finite(double, double)
53 declare double @__atan2_finite(double, double)
55 ; CHECK: declare float @__atan2f_finite(float, float)
56 declare float @__atan2f_finite(float, float)
58 ; CHECK: declare x86_fp80 @__atan2l_finite(x86_fp80, x86_fp80)
59 declare x86_fp80 @__atan2l_finite(x86_fp80, x86_fp80)
61 ; CHECK: declare double @__atanh_finite(double)
62 declare double @__atanh_finite(double)
64 ; CHECK: declare float @__atanhf_finite(float)
65 declare float @__atanhf_finite(float)
67 ; CHECK: declare x86_fp80 @__atanhl_finite(x86_fp80)
68 declare x86_fp80 @__atanhl_finite(x86_fp80)
70 ; CHECK: declare double @__cosh_finite(double)
71 declare double @__cosh_finite(double)
73 ; CHECK: declare float @__coshf_finite(float)
74 declare float @__coshf_finite(float)
76 ; CHECK: declare x86_fp80 @__coshl_finite(x86_fp80)
77 declare x86_fp80 @__coshl_finite(x86_fp80)
79 ; CHECK: declare double @__cospi(double)
80 declare double @__cospi(double)
82 ; CHECK: declare float @__cospif(float)
83 declare float @__cospif(float)
85 ; CHECK: declare double @__exp10_finite(double)
86 declare double @__exp10_finite(double)
88 ; CHECK: declare float @__exp10f_finite(float)
89 declare float @__exp10f_finite(float)
91 ; CHECK: declare x86_fp80 @__exp10l_finite(x86_fp80)
92 declare x86_fp80 @__exp10l_finite(x86_fp80)
94 ; CHECK: declare double @__exp2_finite(double)
95 declare double @__exp2_finite(double)
97 ; CHECK: declare float @__exp2f_finite(float)
98 declare float @__exp2f_finite(float)
100 ; CHECK: declare x86_fp80 @__exp2l_finite(x86_fp80)
101 declare x86_fp80 @__exp2l_finite(x86_fp80)
103 ; CHECK: declare double @__exp_finite(double)
104 declare double @__exp_finite(double)
106 ; CHECK: declare float @__expf_finite(float)
107 declare float @__expf_finite(float)
109 ; CHECK: declare x86_fp80 @__expl_finite(x86_fp80)
110 declare x86_fp80 @__expl_finite(x86_fp80)
112 ; CHECK: declare double @__log10_finite(double)
113 declare double @__log10_finite(double)
115 ; CHECK: declare float @__log10f_finite(float)
116 declare float @__log10f_finite(float)
118 ; CHECK: declare x86_fp80 @__log10l_finite(x86_fp80)
119 declare x86_fp80 @__log10l_finite(x86_fp80)
121 ; CHECK: declare double @__log2_finite(double)
122 declare double @__log2_finite(double)
124 ; CHECK: declare float @__log2f_finite(float)
125 declare float @__log2f_finite(float)
127 ; CHECK: declare x86_fp80 @__log2l_finite(x86_fp80)
128 declare x86_fp80 @__log2l_finite(x86_fp80)
130 ; CHECK: declare double @__log_finite(double)
131 declare double @__log_finite(double)
133 ; CHECK: declare float @__logf_finite(float)
134 declare float @__logf_finite(float)
136 ; CHECK: declare x86_fp80 @__logl_finite(x86_fp80)
137 declare x86_fp80 @__logl_finite(x86_fp80)
139 ; CHECK: declare double @__pow_finite(double, double)
140 declare double @__pow_finite(double, double)
142 ; CHECK: declare float @__powf_finite(float, float)
143 declare float @__powf_finite(float, float)
145 ; CHECK: declare x86_fp80 @__powl_finite(x86_fp80, x86_fp80)
146 declare x86_fp80 @__powl_finite(x86_fp80, x86_fp80)
148 ; CHECK: declare double @__sinh_finite(double)
149 declare double @__sinh_finite(double)
151 ; CHECK: declare float @__sinhf_finite(float)
152 declare float @__sinhf_finite(float)
154 ; CHECK: declare x86_fp80 @__sinhl_finite(x86_fp80)
155 declare x86_fp80 @__sinhl_finite(x86_fp80)
157 ; CHECK: declare double @__sinpi(double)
158 declare double @__sinpi(double)
160 ; CHECK: declare float @__sinpif(float)
161 declare float @__sinpif(float)
163 ; CHECK: declare i32 @abs(i32)
164 declare i32 @abs(i32)
166 ; CHECK: declare i32 @access(i8* nocapture readonly, i32) [[G0:#[0-9]+]]
167 declare i32 @access(i8*, i32)
169 ; CHECK: declare double @acos(double)
170 declare double @acos(double)
172 ; CHECK: declare float @acosf(float)
173 declare float @acosf(float)
175 ; CHECK: declare double @acosh(double)
176 declare double @acosh(double)
178 ; CHECK: declare float @acoshf(float)
179 declare float @acoshf(float)
181 ; CHECK: declare x86_fp80 @acoshl(x86_fp80)
182 declare x86_fp80 @acoshl(x86_fp80)
184 ; CHECK: declare x86_fp80 @acosl(x86_fp80)
185 declare x86_fp80 @acosl(x86_fp80)
187 ; CHECK: declare double @asin(double)
188 declare double @asin(double)
190 ; CHECK: declare float @asinf(float)
191 declare float @asinf(float)
193 ; CHECK: declare double @asinh(double)
194 declare double @asinh(double)
196 ; CHECK: declare float @asinhf(float)
197 declare float @asinhf(float)
199 ; CHECK: declare x86_fp80 @asinhl(x86_fp80)
200 declare x86_fp80 @asinhl(x86_fp80)
202 ; CHECK: declare x86_fp80 @asinl(x86_fp80)
203 declare x86_fp80 @asinl(x86_fp80)
205 ; CHECK: declare double @atan(double)
206 declare double @atan(double)
208 ; CHECK: declare double @atan2(double, double)
209 declare double @atan2(double, double)
211 ; CHECK: declare float @atan2f(float, float)
212 declare float @atan2f(float, float)
214 ; CHECK: declare x86_fp80 @atan2l(x86_fp80, x86_fp80)
215 declare x86_fp80 @atan2l(x86_fp80, x86_fp80)
217 ; CHECK: declare float @atanf(float)
218 declare float @atanf(float)
220 ; CHECK: declare double @atanh(double)
221 declare double @atanh(double)
223 ; CHECK: declare float @atanhf(float)
224 declare float @atanhf(float)
226 ; CHECK: declare x86_fp80 @atanhl(x86_fp80)
227 declare x86_fp80 @atanhl(x86_fp80)
229 ; CHECK: declare x86_fp80 @atanl(x86_fp80)
230 declare x86_fp80 @atanl(x86_fp80)
232 ; CHECK: declare double @atof(i8* nocapture) [[G1:#[0-9]+]]
233 declare double @atof(i8*)
235 ; CHECK: declare i32 @atoi(i8* nocapture) [[G1]]
236 declare i32 @atoi(i8*)
238 ; CHECK: declare i64 @atol(i8* nocapture) [[G1]]
239 declare i64 @atol(i8*)
241 ; CHECK: declare i64 @atoll(i8* nocapture) [[G1]]
242 declare i64 @atoll(i8*)
244 ; CHECK: declare i32 @bcmp(i8* nocapture, i8* nocapture, i64) [[G1]]
245 declare i32 @bcmp(i8*, i8*, i64)
247 ; CHECK: declare void @bcopy(i8* nocapture readonly, i8* nocapture, i64) [[G0]]
248 declare void @bcopy(i8*, i8*, i64)
250 ; CHECK: declare void @bzero(i8* nocapture, i64) [[G0]]
251 declare void @bzero(i8*, i64)
253 ; CHECK: declare noalias i8* @calloc(i64, i64) [[G0]]
254 declare i8* @calloc(i64, i64)
256 ; CHECK: declare double @cbrt(double)
257 declare double @cbrt(double)
259 ; CHECK: declare float @cbrtf(float)
260 declare float @cbrtf(float)
262 ; CHECK: declare x86_fp80 @cbrtl(x86_fp80)
263 declare x86_fp80 @cbrtl(x86_fp80)
265 ; CHECK: declare double @ceil(double)
266 declare double @ceil(double)
268 ; CHECK: declare float @ceilf(float)
269 declare float @ceilf(float)
271 ; CHECK: declare x86_fp80 @ceill(x86_fp80)
272 declare x86_fp80 @ceill(x86_fp80)
274 ; CHECK: declare i32 @chmod(i8* nocapture readonly, i16 zeroext) [[G0]]
275 declare i32 @chmod(i8*, i16 zeroext)
277 ; CHECK: declare i32 @chown(i8* nocapture readonly, i32, i32) [[G0]]
278 declare i32 @chown(i8*, i32, i32)
280 ; CHECK: declare void @clearerr(%opaque* nocapture) [[G0]]
281 declare void @clearerr(%opaque*)
283 ; CHECK: declare i32 @closedir(%opaque* nocapture) [[G0]]
284 declare i32 @closedir(%opaque*)
286 ; CHECK: declare double @copysign(double, double)
287 declare double @copysign(double, double)
289 ; CHECK: declare float @copysignf(float, float)
290 declare float @copysignf(float, float)
292 ; CHECK: declare x86_fp80 @copysignl(x86_fp80, x86_fp80)
293 declare x86_fp80 @copysignl(x86_fp80, x86_fp80)
295 ; CHECK: declare double @cos(double)
296 declare double @cos(double)
298 ; CHECK: declare float @cosf(float)
299 declare float @cosf(float)
301 ; CHECK: declare double @cosh(double)
302 declare double @cosh(double)
304 ; CHECK: declare float @coshf(float)
305 declare float @coshf(float)
307 ; CHECK: declare x86_fp80 @coshl(x86_fp80)
308 declare x86_fp80 @coshl(x86_fp80)
310 ; CHECK: declare x86_fp80 @cosl(x86_fp80)
311 declare x86_fp80 @cosl(x86_fp80)
313 ; CHECK: declare i8* @ctermid(i8* nocapture) [[G0]]
314 declare i8* @ctermid(i8*)
316 ; CHECK: declare double @exp(double)
317 declare double @exp(double)
319 ; CHECK: declare double @exp2(double)
320 declare double @exp2(double)
322 ; CHECK: declare float @exp2f(float)
323 declare float @exp2f(float)
325 ; CHECK: declare x86_fp80 @exp2l(x86_fp80)
326 declare x86_fp80 @exp2l(x86_fp80)
328 ; CHECK: declare float @expf(float)
329 declare float @expf(float)
331 ; CHECK: declare x86_fp80 @expl(x86_fp80)
332 declare x86_fp80 @expl(x86_fp80)
334 ; CHECK: declare double @expm1(double)
335 declare double @expm1(double)
337 ; CHECK: declare float @expm1f(float)
338 declare float @expm1f(float)
340 ; CHECK: declare x86_fp80 @expm1l(x86_fp80)
341 declare x86_fp80 @expm1l(x86_fp80)
343 ; CHECK: declare double @fabs(double)
344 declare double @fabs(double)
346 ; CHECK: declare float @fabsf(float)
347 declare float @fabsf(float)
349 ; CHECK: declare x86_fp80 @fabsl(x86_fp80)
350 declare x86_fp80 @fabsl(x86_fp80)
352 ; CHECK: declare i32 @fclose(%opaque* nocapture) [[G0]]
353 declare i32 @fclose(%opaque*)
355 ; CHECK: declare noalias %opaque* @fdopen(i32, i8* nocapture readonly) [[G0]]
356 declare %opaque* @fdopen(i32, i8*)
358 ; CHECK: declare i32 @feof(%opaque* nocapture) [[G0]]
359 declare i32 @feof(%opaque*)
361 ; CHECK: declare i32 @ferror(%opaque* nocapture) [[G1]]
362 declare i32 @ferror(%opaque*)
364 ; CHECK: declare i32 @fflush(%opaque* nocapture) [[G0]]
365 declare i32 @fflush(%opaque*)
367 ; CHECK: declare i32 @ffs(i32)
368 declare i32 @ffs(i32)
370 ; CHECK: declare i32 @ffsl(i64)
371 declare i32 @ffsl(i64)
373 ; CHECK: declare i32 @ffsll(i64)
374 declare i32 @ffsll(i64)
376 ; CHECK: declare i32 @fgetc(%opaque* nocapture) [[G0]]
377 declare i32 @fgetc(%opaque*)
379 ; CHECK: declare i32 @fgetpos(%opaque* nocapture, i64* nocapture) [[G0]]
380 declare i32 @fgetpos(%opaque*, i64*)
382 ; CHECK: declare i8* @fgets(i8*, i32, %opaque* nocapture) [[G0]]
383 declare i8* @fgets(i8*, i32, %opaque*)
385 ; CHECK: declare i32 @fileno(%opaque* nocapture) [[G0]]
386 declare i32 @fileno(%opaque*)
388 ; CHECK: declare void @flockfile(%opaque* nocapture) [[G0]]
389 declare void @flockfile(%opaque*)
391 ; CHECK: declare double @floor(double)
392 declare double @floor(double)
394 ; CHECK: declare float @floorf(float)
395 declare float @floorf(float)
397 ; CHECK: declare x86_fp80 @floorl(x86_fp80)
398 declare x86_fp80 @floorl(x86_fp80)
400 ; CHECK: declare i32 @fls(i32)
401 declare i32 @fls(i32)
403 ; CHECK: declare i32 @flsl(i64)
404 declare i32 @flsl(i64)
406 ; CHECK: declare i32 @flsll(i64)
407 declare i32 @flsll(i64)
409 ; CHECK: declare double @fmax(double, double)
410 declare double @fmax(double, double)
412 ; CHECK: declare float @fmaxf(float, float)
413 declare float @fmaxf(float, float)
415 ; CHECK: declare x86_fp80 @fmaxl(x86_fp80, x86_fp80)
416 declare x86_fp80 @fmaxl(x86_fp80, x86_fp80)
418 ; CHECK: declare double @fmin(double, double)
419 declare double @fmin(double, double)
421 ; CHECK: declare float @fminf(float, float)
422 declare float @fminf(float, float)
424 ; CHECK: declare x86_fp80 @fminl(x86_fp80, x86_fp80)
425 declare x86_fp80 @fminl(x86_fp80, x86_fp80)
427 ; CHECK: declare double @fmod(double, double)
428 declare double @fmod(double, double)
430 ; CHECK: declare float @fmodf(float, float)
431 declare float @fmodf(float, float)
433 ; CHECK: declare x86_fp80 @fmodl(x86_fp80, x86_fp80)
434 declare x86_fp80 @fmodl(x86_fp80, x86_fp80)
436 ; CHECK: declare noalias %opaque* @fopen(i8* nocapture readonly, i8* nocapture readonly) [[G0]]
437 declare %opaque* @fopen(i8*, i8*)
439 ; CHECK: declare i32 @fprintf(%opaque* nocapture, i8* nocapture readonly, ...) [[G0]]
440 declare i32 @fprintf(%opaque*, i8*, ...)
442 ; CHECK: declare i32 @fputc(i32, %opaque* nocapture) [[G0]]
443 declare i32 @fputc(i32, %opaque*)
445 ; CHECK: declare i32 @fputs(i8* nocapture readonly, %opaque* nocapture) [[G0]]
446 declare i32 @fputs(i8*, %opaque*)
448 ; CHECK: declare i64 @fread(i8* nocapture, i64, i64, %opaque* nocapture) [[G0]]
449 declare i64 @fread(i8*, i64, i64, %opaque*)
451 ; CHECK: declare void @free(i8* nocapture) [[G0]]
452 declare void @free(i8*)
454 ; CHECK: declare double @frexp(double, i32* nocapture) [[G0]]
455 declare double @frexp(double, i32*)
457 ; CHECK: declare float @frexpf(float, i32* nocapture) [[G0]]
458 declare float @frexpf(float, i32*)
460 ; CHECK: declare x86_fp80 @frexpl(x86_fp80, i32* nocapture) [[G0]]
461 declare x86_fp80 @frexpl(x86_fp80, i32*)
463 ; CHECK: declare i32 @fscanf(%opaque* nocapture, i8* nocapture readonly, ...) [[G0]]
464 declare i32 @fscanf(%opaque*, i8*, ...)
466 ; CHECK: declare i32 @fseek(%opaque* nocapture, i64, i32) [[G0]]
467 declare i32 @fseek(%opaque*, i64, i32)
469 ; CHECK: declare i32 @fseeko(%opaque* nocapture, i64, i32) [[G0]]
470 declare i32 @fseeko(%opaque*, i64, i32)
472 ; CHECK-LINUX: declare i32 @fseeko64(%opaque* nocapture, i64, i32) [[G0]]
473 declare i32 @fseeko64(%opaque*, i64, i32)
475 ; CHECK: declare i32 @fsetpos(%opaque* nocapture, i64*) [[G0]]
476 declare i32 @fsetpos(%opaque*, i64*)
478 ; CHECK: declare i32 @fstat(i32, %opaque* nocapture) [[G0]]
479 declare i32 @fstat(i32, %opaque*)
481 ; CHECK-LINUX: declare i32 @fstat64(i32, %opaque* nocapture) [[G0]]
482 declare i32 @fstat64(i32, %opaque*)
484 ; CHECK: declare i32 @fstatvfs(i32, %opaque* nocapture) [[G0]]
485 declare i32 @fstatvfs(i32, %opaque*)
487 ; CHECK-LINUX: declare i32 @fstatvfs64(i32, %opaque* nocapture) [[G0]]
488 declare i32 @fstatvfs64(i32, %opaque*)
490 ; CHECK: declare i64 @ftell(%opaque* nocapture) [[G0]]
491 declare i64 @ftell(%opaque*)
493 ; CHECK: declare i64 @ftello(%opaque* nocapture) [[G0]]
494 declare i64 @ftello(%opaque*)
496 ; CHECK-LINUX: declare i64 @ftello64(%opaque* nocapture) [[G0]]
497 declare i64 @ftello64(%opaque*)
499 ; CHECK: declare i32 @ftrylockfile(%opaque* nocapture) [[G0]]
500 declare i32 @ftrylockfile(%opaque*)
502 ; CHECK: declare void @funlockfile(%opaque* nocapture) [[G0]]
503 declare void @funlockfile(%opaque*)
505 ; CHECK: declare i64 @fwrite(i8* nocapture, i64, i64, %opaque* nocapture) [[G0]]
506 declare i64 @fwrite(i8*, i64, i64, %opaque*)
508 ; CHECK: declare i32 @getc(%opaque* nocapture) [[G0]]
509 declare i32 @getc(%opaque*)
511 ; CHECK: declare i32 @getc_unlocked(%opaque* nocapture) [[G0]]
512 declare i32 @getc_unlocked(%opaque*)
514 ; CHECK: declare i32 @getchar()
515 declare i32 @getchar()
517 ; CHECK: declare i32 @getchar_unlocked()
518 declare i32 @getchar_unlocked()
520 ; CHECK: declare i8* @getenv(i8* nocapture) [[G1]]
521 declare i8* @getenv(i8*)
523 ; CHECK: declare i32 @getitimer(i32, %opaque* nocapture) [[G0]]
524 declare i32 @getitimer(i32, %opaque*)
526 ; CHECK: declare i32 @getlogin_r(i8* nocapture, i64) [[G0]]
527 declare i32 @getlogin_r(i8*, i64)
529 ; CHECK: declare %opaque* @getpwnam(i8* nocapture readonly) [[G0]]
530 declare %opaque* @getpwnam(i8*)
532 ; CHECK: declare i8* @gets(i8*)
533 declare i8* @gets(i8*)
535 ; CHECK: declare i32 @gettimeofday(%opaque* nocapture, i8* nocapture) [[G0]]
536 declare i32 @gettimeofday(%opaque*, i8*)
538 ; CHECK: declare i32 @isascii(i32)
539 declare i32 @isascii(i32)
541 ; CHECK: declare i32 @isdigit(i32)
542 declare i32 @isdigit(i32)
544 ; CHECK: declare i64 @labs(i64)
545 declare i64 @labs(i64)
547 ; CHECK: declare i32 @lchown(i8* nocapture readonly, i32, i32) [[G0]]
548 declare i32 @lchown(i8*, i32, i32)
550 ; CHECK: declare double @ldexp(double, i32)
551 declare double @ldexp(double, i32)
553 ; CHECK: declare float @ldexpf(float, i32)
554 declare float @ldexpf(float, i32)
556 ; CHECK: declare x86_fp80 @ldexpl(x86_fp80, i32)
557 declare x86_fp80 @ldexpl(x86_fp80, i32)
559 ; CHECK: declare i64 @llabs(i64)
560 declare i64 @llabs(i64)
562 ; CHECK: declare double @log(double)
563 declare double @log(double)
565 ; CHECK: declare double @log10(double)
566 declare double @log10(double)
568 ; CHECK: declare float @log10f(float)
569 declare float @log10f(float)
571 ; CHECK: declare x86_fp80 @log10l(x86_fp80)
572 declare x86_fp80 @log10l(x86_fp80)
574 ; CHECK: declare double @log1p(double)
575 declare double @log1p(double)
577 ; CHECK: declare float @log1pf(float)
578 declare float @log1pf(float)
580 ; CHECK: declare x86_fp80 @log1pl(x86_fp80)
581 declare x86_fp80 @log1pl(x86_fp80)
583 ; CHECK: declare double @log2(double)
584 declare double @log2(double)
586 ; CHECK: declare float @log2f(float)
587 declare float @log2f(float)
589 ; CHECK: declare x86_fp80 @log2l(x86_fp80)
590 declare x86_fp80 @log2l(x86_fp80)
592 ; CHECK: declare double @logb(double)
593 declare double @logb(double)
595 ; CHECK: declare float @logbf(float)
596 declare float @logbf(float)
598 ; CHECK: declare x86_fp80 @logbl(x86_fp80)
599 declare x86_fp80 @logbl(x86_fp80)
601 ; CHECK: declare float @logf(float)
602 declare float @logf(float)
604 ; CHECK: declare x86_fp80 @logl(x86_fp80)
605 declare x86_fp80 @logl(x86_fp80)
607 ; CHECK: declare i32 @lstat(i8* nocapture readonly, %opaque* nocapture) [[G0]]
608 declare i32 @lstat(i8*, %opaque*)
610 ; CHECK-LINUX: declare i32 @lstat64(i8* nocapture readonly, %opaque* nocapture) [[G0]]
611 declare i32 @lstat64(i8*, %opaque*)
613 ; CHECK: declare noalias i8* @malloc(i64) [[G0]]
614 declare i8* @malloc(i64)
616 ; CHECK-LINUX: declare noalias i8* @memalign(i64, i64)
617 declare i8* @memalign(i64, i64)
619 ; CHECK: declare i8* @memccpy(i8*, i8* nocapture readonly, i32, i64) [[G0]]
620 declare i8* @memccpy(i8*, i8*, i32, i64)
622 ; CHECK: declare i8* @memchr(i8*, i32, i64) [[G1]]
623 declare i8* @memchr(i8*, i32, i64)
625 ; CHECK: declare i32 @memcmp(i8* nocapture, i8* nocapture, i64) [[G1]]
626 declare i32 @memcmp(i8*, i8*, i64)
628 ; CHECK: declare i8* @memcpy(i8* returned, i8* nocapture readonly, i64) [[G0]]
629 declare i8* @memcpy(i8*, i8*, i64)
631 ; CHECK: declare i8* @mempcpy(i8*, i8* nocapture readonly, i64) [[G0]]
632 declare i8* @mempcpy(i8*, i8*, i64)
634 ; CHECK: declare i8* @memmove(i8* returned, i8* nocapture readonly, i64) [[G0]]
635 declare i8* @memmove(i8*, i8*, i64)
637 ; CHECK: declare i8* @memset(i8*, i32, i64)
638 declare i8* @memset(i8*, i32, i64)
640 ; CHECK: declare i32 @mkdir(i8* nocapture readonly, i16 zeroext) [[G0]]
641 declare i32 @mkdir(i8*, i16 zeroext)
643 ; CHECK: declare i64 @mktime(%opaque* nocapture) [[G0]]
644 declare i64 @mktime(%opaque*)
646 ; CHECK: declare double @modf(double, double* nocapture) [[G0]]
647 declare double @modf(double, double*)
649 ; CHECK: declare float @modff(float, float* nocapture) [[G0]]
650 declare float @modff(float, float*)
652 ; CHECK: declare x86_fp80 @modfl(x86_fp80, x86_fp80* nocapture) [[G0]]
653 declare x86_fp80 @modfl(x86_fp80, x86_fp80*)
655 ; CHECK: declare double @nearbyint(double)
656 declare double @nearbyint(double)
658 ; CHECK: declare float @nearbyintf(float)
659 declare float @nearbyintf(float)
661 ; CHECK: declare x86_fp80 @nearbyintl(x86_fp80)
662 declare x86_fp80 @nearbyintl(x86_fp80)
664 ; CHECK: declare i32 @open(i8* nocapture readonly, i32, ...)
665 declare i32 @open(i8*, i32, ...)
667 ; CHECK-LINUX: declare i32 @open64(i8* nocapture readonly, i32, ...)
668 declare i32 @open64(i8*, i32, ...)
670 ; CHECK: declare noalias %opaque* @opendir(i8* nocapture readonly) [[G0]]
671 declare %opaque* @opendir(i8*)
673 ; CHECK: declare i32 @pclose(%opaque* nocapture) [[G0]]
674 declare i32 @pclose(%opaque*)
676 ; CHECK: declare void @perror(i8* nocapture readonly) [[G0]]
677 declare void @perror(i8*)
679 ; CHECK: declare noalias %opaque* @popen(i8* nocapture readonly, i8* nocapture readonly) [[G0]]
680 declare %opaque* @popen(i8*, i8*)
682 ; CHECK: declare i32 @posix_memalign(i8**, i64, i64)
683 declare i32 @posix_memalign(i8**, i64, i64)
685 ; CHECK: declare double @pow(double, double)
686 declare double @pow(double, double)
688 ; CHECK: declare float @powf(float, float)
689 declare float @powf(float, float)
691 ; CHECK: declare x86_fp80 @powl(x86_fp80, x86_fp80)
692 declare x86_fp80 @powl(x86_fp80, x86_fp80)
694 ; CHECK: declare i64 @pread(i32, i8* nocapture, i64, i64)
695 declare i64 @pread(i32, i8*, i64, i64)
697 ; CHECK: declare i32 @printf(i8* nocapture readonly, ...) [[G0]]
698 declare i32 @printf(i8*, ...)
700 ; CHECK: declare i32 @putc(i32, %opaque* nocapture) [[G0]]
701 declare i32 @putc(i32, %opaque*)
703 ; CHECK: declare i32 @putchar(i32)
704 declare i32 @putchar(i32)
706 ; CHECK: declare i32 @putchar_unlocked(i32)
707 declare i32 @putchar_unlocked(i32)
709 ; CHECK: declare i32 @puts(i8* nocapture readonly) [[G0]]
710 declare i32 @puts(i8*)
712 ; CHECK: declare i64 @pwrite(i32, i8* nocapture readonly, i64, i64)
713 declare i64 @pwrite(i32, i8*, i64, i64)
715 ; CHECK: declare void @qsort(i8*, i64, i64, i32 (i8*, i8*)* nocapture)
716 declare void @qsort(i8*, i64, i64, i32 (i8*, i8*)*)
718 ; CHECK: declare i64 @read(i32, i8* nocapture, i64)
719 declare i64 @read(i32, i8*, i64)
721 ; CHECK: declare i64 @readlink(i8* nocapture readonly, i8* nocapture, i64) [[G0]]
722 declare i64 @readlink(i8*, i8*, i64)
724 ; CHECK: declare noalias i8* @realloc(i8* nocapture, i64) [[G0]]
725 declare i8* @realloc(i8*, i64)
727 ; CHECK: declare i8* @reallocf(i8*, i64)
728 declare i8* @reallocf(i8*, i64)
730 ; CHECK: declare i8* @realpath(i8* nocapture readonly, i8*)
731 declare i8* @realpath(i8*, i8*)
733 ; CHECK: declare i32 @remove(i8* nocapture readonly) [[G0]]
734 declare i32 @remove(i8*)
736 ; CHECK: declare i32 @rename(i8* nocapture readonly, i8* nocapture readonly) [[G0]]
737 declare i32 @rename(i8*, i8*)
739 ; CHECK: declare void @rewind(%opaque* nocapture) [[G0]]
740 declare void @rewind(%opaque*)
742 ; CHECK: declare double @rint(double)
743 declare double @rint(double)
745 ; CHECK: declare float @rintf(float)
746 declare float @rintf(float)
748 ; CHECK: declare x86_fp80 @rintl(x86_fp80)
749 declare x86_fp80 @rintl(x86_fp80)
751 ; CHECK: declare i32 @rmdir(i8* nocapture readonly) [[G0]]
752 declare i32 @rmdir(i8*)
754 ; CHECK: declare double @round(double)
755 declare double @round(double)
757 ; CHECK: declare float @roundf(float)
758 declare float @roundf(float)
760 ; CHECK: declare x86_fp80 @roundl(x86_fp80)
761 declare x86_fp80 @roundl(x86_fp80)
763 ; CHECK: declare i32 @scanf(i8* nocapture readonly, ...) [[G0]]
764 declare i32 @scanf(i8*, ...)
766 ; CHECK: declare void @setbuf(%opaque* nocapture, i8*) [[G0]]
767 declare void @setbuf(%opaque*, i8*)
769 ; CHECK: declare i32 @setitimer(i32, %opaque* nocapture readonly, %opaque* nocapture) [[G0]]
770 declare i32 @setitimer(i32, %opaque*, %opaque*)
772 ; CHECK: declare i32 @setvbuf(%opaque* nocapture, i8*, i32, i64) [[G0]]
773 declare i32 @setvbuf(%opaque*, i8*, i32, i64)
775 ; CHECK: declare double @sin(double)
776 declare double @sin(double)
778 ; CHECK: declare float @sinf(float)
779 declare float @sinf(float)
781 ; CHECK: declare double @sinh(double)
782 declare double @sinh(double)
784 ; CHECK: declare float @sinhf(float)
785 declare float @sinhf(float)
787 ; CHECK: declare x86_fp80 @sinhl(x86_fp80)
788 declare x86_fp80 @sinhl(x86_fp80)
790 ; CHECK: declare x86_fp80 @sinl(x86_fp80)
791 declare x86_fp80 @sinl(x86_fp80)
793 ; CHECK: declare i32 @snprintf(i8* nocapture, i64, i8* nocapture readonly, ...) [[G0]]
794 declare i32 @snprintf(i8*, i64, i8*, ...)
796 ; CHECK: declare i32 @sprintf(i8* nocapture, i8* nocapture readonly, ...) [[G0]]
797 declare i32 @sprintf(i8*, i8*, ...)
799 ; CHECK: declare double @sqrt(double)
800 declare double @sqrt(double)
802 ; CHECK: declare float @sqrtf(float)
803 declare float @sqrtf(float)
805 ; CHECK: declare x86_fp80 @sqrtl(x86_fp80)
806 declare x86_fp80 @sqrtl(x86_fp80)
808 ; CHECK: declare i32 @sscanf(i8* nocapture readonly, i8* nocapture readonly, ...) [[G0]]
809 declare i32 @sscanf(i8*, i8*, ...)
811 ; CHECK: declare i32 @stat(i8* nocapture readonly, %opaque* nocapture) [[G0]]
812 declare i32 @stat(i8*, %opaque*)
814 ; CHECK-LINUX: declare i32 @stat64(i8* nocapture readonly, %opaque* nocapture) [[G0]]
815 declare i32 @stat64(i8*, %opaque*)
817 ; CHECK: declare i32 @statvfs(i8* nocapture readonly, %opaque* nocapture) [[G0]]
818 declare i32 @statvfs(i8*, %opaque*)
820 ; CHECK-LINUX: declare i32 @statvfs64(i8* nocapture readonly, %opaque* nocapture) [[G0]]
821 declare i32 @statvfs64(i8*, %opaque*)
823 ; CHECK: declare i8* @stpcpy(i8*, i8* nocapture readonly) [[G0]]
824 declare i8* @stpcpy(i8*, i8*)
826 ; CHECK: declare i8* @stpncpy(i8*, i8* nocapture readonly, i64) [[G0]]
827 declare i8* @stpncpy(i8*, i8*, i64)
829 ; CHECK: declare i32 @strcasecmp(i8* nocapture, i8* nocapture) [[G1]]
830 declare i32 @strcasecmp(i8*, i8*)
832 ; CHECK: declare i8* @strcat(i8* returned, i8* nocapture readonly) [[G0]]
833 declare i8* @strcat(i8*, i8*)
835 ; CHECK: declare i8* @strchr(i8*, i32) [[G1]]
836 declare i8* @strchr(i8*, i32)
838 ; CHECK: declare i32 @strcmp(i8* nocapture, i8* nocapture) [[G1]]
839 declare i32 @strcmp(i8*, i8*)
841 ; CHECK: declare i32 @strcoll(i8* nocapture, i8* nocapture) [[G1]]
842 declare i32 @strcoll(i8*, i8*)
844 ; CHECK: declare i8* @strcpy(i8* returned, i8* nocapture readonly) [[G0]]
845 declare i8* @strcpy(i8*, i8*)
847 ; CHECK: declare i64 @strcspn(i8* nocapture, i8* nocapture) [[G1]]
848 declare i64 @strcspn(i8*, i8*)
850 ; CHECK: declare noalias i8* @strdup(i8* nocapture readonly) [[G0]]
851 declare i8* @strdup(i8*)
853 ; CHECK: declare i64 @strlen(i8* nocapture) [[G2:#[0-9]+]]
854 declare i64 @strlen(i8*)
856 ; CHECK: declare i32 @strncasecmp(i8* nocapture, i8* nocapture, i64) [[G1]]
857 declare i32 @strncasecmp(i8*, i8*, i64)
859 ; CHECK: declare i8* @strncat(i8* returned, i8* nocapture readonly, i64) [[G0]]
860 declare i8* @strncat(i8*, i8*, i64)
862 ; CHECK: declare i32 @strncmp(i8* nocapture, i8* nocapture, i64) [[G1]]
863 declare i32 @strncmp(i8*, i8*, i64)
865 ; CHECK: declare i8* @strncpy(i8* returned, i8* nocapture readonly, i64) [[G0]]
866 declare i8* @strncpy(i8*, i8*, i64)
868 ; CHECK: declare noalias i8* @strndup(i8* nocapture readonly, i64) [[G0]]
869 declare i8* @strndup(i8*, i64)
871 ; CHECK: declare i64 @strnlen(i8*, i64)
872 declare i64 @strnlen(i8*, i64)
874 ; CHECK: declare i8* @strpbrk(i8*, i8* nocapture) [[G1]]
875 declare i8* @strpbrk(i8*, i8*)
877 ; CHECK: declare i8* @strrchr(i8*, i32) [[G1]]
878 declare i8* @strrchr(i8*, i32)
880 ; CHECK: declare i64 @strspn(i8* nocapture, i8* nocapture) [[G1]]
881 declare i64 @strspn(i8*, i8*)
883 ; CHECK: declare i8* @strstr(i8*, i8* nocapture) [[G1]]
884 declare i8* @strstr(i8*, i8*)
886 ; CHECK: declare double @strtod(i8* readonly, i8** nocapture) [[G0]]
887 declare double @strtod(i8*, i8**)
889 ; CHECK: declare float @strtof(i8* readonly, i8** nocapture) [[G0]]
890 declare float @strtof(i8*, i8**)
892 ; CHECK: declare i8* @strtok(i8*, i8* nocapture readonly) [[G0]]
893 declare i8* @strtok(i8*, i8*)
895 ; CHECK: declare i8* @strtok_r(i8*, i8* nocapture readonly, i8**) [[G0]]
896 declare i8* @strtok_r(i8*, i8*, i8**)
898 ; CHECK: declare i64 @strtol(i8* readonly, i8** nocapture, i32) [[G0]]
899 declare i64 @strtol(i8*, i8**, i32)
901 ; CHECK: declare x86_fp80 @strtold(i8* readonly, i8** nocapture) [[G0]]
902 declare x86_fp80 @strtold(i8*, i8**)
904 ; CHECK: declare i64 @strtoll(i8* readonly, i8** nocapture, i32) [[G0]]
905 declare i64 @strtoll(i8*, i8**, i32)
907 ; CHECK: declare i64 @strtoul(i8* readonly, i8** nocapture, i32) [[G0]]
908 declare i64 @strtoul(i8*, i8**, i32)
910 ; CHECK: declare i64 @strtoull(i8* readonly, i8** nocapture, i32) [[G0]]
911 declare i64 @strtoull(i8*, i8**, i32)
913 ; CHECK: declare i64 @strxfrm(i8* nocapture, i8* nocapture readonly, i64) [[G0]]
914 declare i64 @strxfrm(i8*, i8*, i64)
916 ; CHECK: declare i32 @system(i8* nocapture readonly)
917 declare i32 @system(i8*)
919 ; CHECK: declare double @tan(double)
920 declare double @tan(double)
922 ; CHECK: declare float @tanf(float)
923 declare float @tanf(float)
925 ; CHECK: declare double @tanh(double)
926 declare double @tanh(double)
928 ; CHECK: declare float @tanhf(float)
929 declare float @tanhf(float)
931 ; CHECK: declare x86_fp80 @tanhl(x86_fp80)
932 declare x86_fp80 @tanhl(x86_fp80)
934 ; CHECK: declare x86_fp80 @tanl(x86_fp80)
935 declare x86_fp80 @tanl(x86_fp80)
937 ; CHECK: declare i64 @times(%opaque* nocapture) [[G0]]
938 declare i64 @times(%opaque*)
940 ; CHECK: declare noalias %opaque* @tmpfile() [[G0]]
941 declare %opaque* @tmpfile()
943 ; CHECK-LINUX: declare noalias %opaque* @tmpfile64() [[G0]]
944 declare %opaque* @tmpfile64()
946 ; CHECK: declare i32 @toascii(i32)
947 declare i32 @toascii(i32)
949 ; CHECK: declare double @trunc(double)
950 declare double @trunc(double)
952 ; CHECK: declare float @truncf(float)
953 declare float @truncf(float)
955 ; CHECK: declare x86_fp80 @truncl(x86_fp80)
956 declare x86_fp80 @truncl(x86_fp80)
958 ; CHECK: declare i32 @uname(%opaque* nocapture) [[G0]]
959 declare i32 @uname(%opaque*)
961 ; CHECK: declare i32 @ungetc(i32, %opaque* nocapture) [[G0]]
962 declare i32 @ungetc(i32, %opaque*)
964 ; CHECK: declare i32 @unlink(i8* nocapture readonly) [[G0]]
965 declare i32 @unlink(i8*)
967 ; CHECK: declare i32 @unsetenv(i8* nocapture readonly) [[G0]]
968 declare i32 @unsetenv(i8*)
970 ; CHECK: declare i32 @utime(i8* nocapture readonly, %opaque* nocapture readonly) [[G0]]
971 declare i32 @utime(i8*, %opaque*)
973 ; CHECK: declare i32 @utimes(i8* nocapture readonly, %opaque* nocapture readonly) [[G0]]
974 declare i32 @utimes(i8*, %opaque*)
976 ; CHECK: declare noalias i8* @valloc(i64) [[G0]]
977 declare i8* @valloc(i64)
979 ; CHECK: declare i32 @vfprintf(%opaque* nocapture, i8* nocapture readonly, %opaque*) [[G0]]
980 declare i32 @vfprintf(%opaque*, i8*, %opaque*)
982 ; CHECK: declare i32 @vfscanf(%opaque* nocapture, i8* nocapture readonly, %opaque*) [[G0]]
983 declare i32 @vfscanf(%opaque*, i8*, %opaque*)
985 ; CHECK: declare i32 @vprintf(i8* nocapture readonly, %opaque*) [[G0]]
986 declare i32 @vprintf(i8*, %opaque*)
988 ; CHECK: declare i32 @vscanf(i8* nocapture readonly, %opaque*) [[G0]]
989 declare i32 @vscanf(i8*, %opaque*)
991 ; CHECK: declare i32 @vsnprintf(i8* nocapture, i64, i8* nocapture readonly, %opaque*) [[G0]]
992 declare i32 @vsnprintf(i8*, i64, i8*, %opaque*)
994 ; CHECK: declare i32 @vsprintf(i8* nocapture, i8* nocapture readonly, %opaque*) [[G0]]
995 declare i32 @vsprintf(i8*, i8*, %opaque*)
997 ; CHECK: declare i32 @vsscanf(i8* nocapture readonly, i8* nocapture readonly, %opaque*) [[G0]]
998 declare i32 @vsscanf(i8*, i8*, %opaque*)
1000 ; CHECK: declare i64 @write(i32, i8* nocapture readonly, i64)
1001 declare i64 @write(i32, i8*, i64)
1004 ; memset_pattern16 isn't available everywhere.
1005 ; CHECK-DARWIN: declare void @memset_pattern16(i8* nocapture, i8* nocapture readonly, i64) [[G3:#[0-9]+]]
1006 declare void @memset_pattern16(i8*, i8*, i64)
1009 ; CHECK: attributes [[G0]] = { nounwind }
1010 ; CHECK: attributes [[G1]] = { nounwind readonly }
1011 ; CHECK: attributes [[G2]] = { argmemonly nounwind readonly }
1012 ; CHECK-DARWIN: attributes [[G3]] = { argmemonly }