From: Saleem Abdulrasool Date: Fri, 13 Oct 2017 20:07:30 +0000 (+0000) Subject: Basic: adjust attributes on `nan` LIBBUILTINs X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ecbf0ff4530604388091502bba3adba5f60a351a;p=clang Basic: adjust attributes on `nan` LIBBUILTINs The `nan` family of functions will inspect the contents of the parameter that they are passed. As a result, the function cannot be annotated as `const`. The documentation of the `const` attribute explicitly states this: Note that a function that has pointer arguments and examines the data pointed to must not be declared const. Adjust the annotations on this family of functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@315741 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/Builtins.def b/include/clang/Basic/Builtins.def index 8d395e1414..1873c2e3d3 100644 --- a/include/clang/Basic/Builtins.def +++ b/include/clang/Basic/Builtins.def @@ -1008,9 +1008,9 @@ LIBBUILTIN(modf, "ddd*", "fn", "math.h", ALL_LANGUAGES) LIBBUILTIN(modff, "fff*", "fn", "math.h", ALL_LANGUAGES) LIBBUILTIN(modfl, "LdLdLd*", "fn", "math.h", ALL_LANGUAGES) -LIBBUILTIN(nan, "dcC*", "fnc", "math.h", ALL_LANGUAGES) -LIBBUILTIN(nanf, "fcC*", "fnc", "math.h", ALL_LANGUAGES) -LIBBUILTIN(nanl, "LdcC*", "fnc", "math.h", ALL_LANGUAGES) +LIBBUILTIN(nan, "dcC*", "fn", "math.h", ALL_LANGUAGES) +LIBBUILTIN(nanf, "fcC*", "fn", "math.h", ALL_LANGUAGES) +LIBBUILTIN(nanl, "LdcC*", "fn", "math.h", ALL_LANGUAGES) LIBBUILTIN(pow, "ddd", "fne", "math.h", ALL_LANGUAGES) LIBBUILTIN(powf, "fff", "fne", "math.h", ALL_LANGUAGES) diff --git a/test/CodeGen/libcall-declarations.c b/test/CodeGen/libcall-declarations.c index 5a0b2ba0e6..83b35fe3d0 100644 --- a/test/CodeGen/libcall-declarations.c +++ b/test/CodeGen/libcall-declarations.c @@ -312,314 +312,314 @@ void *use[] = { F(__cospif), F(__tanpi), F(__tanpif), F(__exp10), F(__exp10f) }; -// CHECK-NOERRNO: declare double @atan2(double, double) [[NUW:#[0-9]+]] -// CHECK-NOERRNO: declare float @atan2f(float, float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @atan2l(x86_fp80, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare i32 @abs(i32) [[NUW]] -// CHECK-NOERRNO: declare i64 @labs(i64) [[NUW]] -// CHECK-NOERRNO: declare i64 @llabs(i64) [[NUW]] -// CHECK-NOERRNO: declare double @copysign(double, double) [[NUW]] -// CHECK-NOERRNO: declare float @copysignf(float, float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @copysignl(x86_fp80, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @fabs(double) [[NUW]] -// CHECK-NOERRNO: declare float @fabsf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @fabsl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @fmod(double, double) [[NUW]] -// CHECK-NOERRNO: declare float @fmodf(float, float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @fmodl(x86_fp80, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @ldexp(double, i32) [[NUW]] -// CHECK-NOERRNO: declare float @ldexpf(float, i32) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @ldexpl(x86_fp80, i32) [[NUW]] -// CHECK-NOERRNO: declare double @nan(i8*) [[NUW]] +// CHECK-NOERRNO: declare double @atan2(double, double) [[NUWRN:#[0-9]+]] +// CHECK-NOERRNO: declare float @atan2f(float, float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @atan2l(x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare i32 @abs(i32) [[NUWRN]] +// CHECK-NOERRNO: declare i64 @labs(i64) [[NUWRN]] +// CHECK-NOERRNO: declare i64 @llabs(i64) [[NUWRN]] +// CHECK-NOERRNO: declare double @copysign(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @copysignf(float, float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @copysignl(x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @fabs(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @fabsf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @fabsl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @fmod(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @fmodf(float, float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @fmodl(x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @ldexp(double, i32) [[NUWRN]] +// CHECK-NOERRNO: declare float @ldexpf(float, i32) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @ldexpl(x86_fp80, i32) [[NUWRN]] +// CHECK-NOERRNO: declare double @nan(i8*) [[NUW:#[0-9]+]] // CHECK-NOERRNO: declare float @nanf(i8*) [[NUW]] // CHECK-NOERRNO: declare x86_fp80 @nanl(i8*) [[NUW]] -// CHECK-NOERRNO: declare double @pow(double, double) [[NUW]] -// CHECK-NOERRNO: declare float @powf(float, float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @powl(x86_fp80, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @acos(double) [[NUW]] -// CHECK-NOERRNO: declare float @acosf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @acosl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @acosh(double) [[NUW]] -// CHECK-NOERRNO: declare float @acoshf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @acoshl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @asin(double) [[NUW]] -// CHECK-NOERRNO: declare float @asinf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @asinl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @asinh(double) [[NUW]] -// CHECK-NOERRNO: declare float @asinhf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @asinhl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @atan(double) [[NUW]] -// CHECK-NOERRNO: declare float @atanf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @atanl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @atanh(double) [[NUW]] -// CHECK-NOERRNO: declare float @atanhf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @atanhl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @cbrt(double) [[NUW]] -// CHECK-NOERRNO: declare float @cbrtf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @cbrtl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @ceil(double) [[NUW]] -// CHECK-NOERRNO: declare float @ceilf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @ceill(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @cos(double) [[NUW]] -// CHECK-NOERRNO: declare float @cosf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @cosl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @cosh(double) [[NUW]] -// CHECK-NOERRNO: declare float @coshf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @coshl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @erf(double) [[NUW]] -// CHECK-NOERRNO: declare float @erff(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @erfl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @erfc(double) [[NUW]] -// CHECK-NOERRNO: declare float @erfcf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @erfcl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @exp(double) [[NUW]] -// CHECK-NOERRNO: declare float @expf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @expl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @exp2(double) [[NUW]] -// CHECK-NOERRNO: declare float @exp2f(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @exp2l(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @expm1(double) [[NUW]] -// CHECK-NOERRNO: declare float @expm1f(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @expm1l(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @fdim(double, double) [[NUW]] -// CHECK-NOERRNO: declare float @fdimf(float, float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @fdiml(x86_fp80, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @floor(double) [[NUW]] -// CHECK-NOERRNO: declare float @floorf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @floorl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @fma(double, double, double) [[NUW]] -// CHECK-NOERRNO: declare float @fmaf(float, float, float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @fmal(x86_fp80, x86_fp80, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @fmax(double, double) [[NUW]] -// CHECK-NOERRNO: declare float @fmaxf(float, float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @fmaxl(x86_fp80, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @fmin(double, double) [[NUW]] -// CHECK-NOERRNO: declare float @fminf(float, float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @fminl(x86_fp80, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @hypot(double, double) [[NUW]] -// CHECK-NOERRNO: declare float @hypotf(float, float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @hypotl(x86_fp80, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare i32 @ilogb(double) [[NUW]] -// CHECK-NOERRNO: declare i32 @ilogbf(float) [[NUW]] -// CHECK-NOERRNO: declare i32 @ilogbl(x86_fp80) [[NUW]] +// CHECK-NOERRNO: declare double @pow(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @powf(float, float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @powl(x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @acos(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @acosf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @acosl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @acosh(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @acoshf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @acoshl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @asin(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @asinf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @asinl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @asinh(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @asinhf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @asinhl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @atan(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @atanf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @atanl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @atanh(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @atanhf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @atanhl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @cbrt(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @cbrtf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @cbrtl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @ceil(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @ceilf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @ceill(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @cos(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @cosf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @cosl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @cosh(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @coshf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @coshl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @erf(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @erff(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @erfl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @erfc(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @erfcf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @erfcl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @exp(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @expf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @expl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @exp2(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @exp2f(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @exp2l(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @expm1(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @expm1f(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @expm1l(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @fdim(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @fdimf(float, float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @fdiml(x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @floor(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @floorf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @floorl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @fma(double, double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @fmaf(float, float, float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @fmal(x86_fp80, x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @fmax(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @fmaxf(float, float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @fmaxl(x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @fmin(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @fminf(float, float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @fminl(x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @hypot(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @hypotf(float, float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @hypotl(x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare i32 @ilogb(double) [[NUWRN]] +// CHECK-NOERRNO: declare i32 @ilogbf(float) [[NUWRN]] +// CHECK-NOERRNO: declare i32 @ilogbl(x86_fp80) [[NUWRN]] // CHECK-NOERRNO: declare double @lgamma(double) [[NONCONST:#[0-9]+]] // CHECK-NOERRNO: declare float @lgammaf(float) [[NONCONST]] // CHECK-NOERRNO: declare x86_fp80 @lgammal(x86_fp80) [[NONCONST]] -// CHECK-NOERRNO: declare i64 @llrint(double) [[NUW]] -// CHECK-NOERRNO: declare i64 @llrintf(float) [[NUW]] -// CHECK-NOERRNO: declare i64 @llrintl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare i64 @llround(double) [[NUW]] -// CHECK-NOERRNO: declare i64 @llroundf(float) [[NUW]] -// CHECK-NOERRNO: declare i64 @llroundl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @log(double) [[NUW]] -// CHECK-NOERRNO: declare float @logf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @logl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @log10(double) [[NUW]] -// CHECK-NOERRNO: declare float @log10f(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @log10l(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @log1p(double) [[NUW]] -// CHECK-NOERRNO: declare float @log1pf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @log1pl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @log2(double) [[NUW]] -// CHECK-NOERRNO: declare float @log2f(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @log2l(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @logb(double) [[NUW]] -// CHECK-NOERRNO: declare float @logbf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @logbl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare i64 @lrint(double) [[NUW]] -// CHECK-NOERRNO: declare i64 @lrintf(float) [[NUW]] -// CHECK-NOERRNO: declare i64 @lrintl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare i64 @lround(double) [[NUW]] -// CHECK-NOERRNO: declare i64 @lroundf(float) [[NUW]] -// CHECK-NOERRNO: declare i64 @lroundl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @nearbyint(double) [[NUW]] -// CHECK-NOERRNO: declare float @nearbyintf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @nearbyintl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @nextafter(double, double) [[NUW]] -// CHECK-NOERRNO: declare float @nextafterf(float, float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @nextafterl(x86_fp80, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @nexttoward(double, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare float @nexttowardf(float, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @nexttowardl(x86_fp80, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @remainder(double, double) [[NUW]] -// CHECK-NOERRNO: declare float @remainderf(float, float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @remainderl(x86_fp80, x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @rint(double) [[NUW]] -// CHECK-NOERRNO: declare float @rintf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @rintl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @round(double) [[NUW]] -// CHECK-NOERRNO: declare float @roundf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @roundl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @scalbln(double, i64) [[NUW]] -// CHECK-NOERRNO: declare float @scalblnf(float, i64) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @scalblnl(x86_fp80, i64) [[NUW]] -// CHECK-NOERRNO: declare double @scalbn(double, i32) [[NUW]] -// CHECK-NOERRNO: declare float @scalbnf(float, i32) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @scalbnl(x86_fp80, i32) [[NUW]] -// CHECK-NOERRNO: declare double @sin(double) [[NUW]] -// CHECK-NOERRNO: declare float @sinf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @sinl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @sinh(double) [[NUW]] -// CHECK-NOERRNO: declare float @sinhf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @sinhl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @sqrt(double) [[NUW]] -// CHECK-NOERRNO: declare float @sqrtf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @sqrtl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @tan(double) [[NUW]] -// CHECK-NOERRNO: declare float @tanf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @tanl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @tanh(double) [[NUW]] -// CHECK-NOERRNO: declare float @tanhf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @tanhl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @tgamma(double) [[NUW]] -// CHECK-NOERRNO: declare float @tgammaf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @tgammal(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @trunc(double) [[NUW]] -// CHECK-NOERRNO: declare float @truncf(float) [[NUW]] -// CHECK-NOERRNO: declare x86_fp80 @truncl(x86_fp80) [[NUW]] -// CHECK-NOERRNO: declare double @cabs(double, double) [[NUW]] -// CHECK-NOERRNO: declare float @cabsf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @cacos(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @cacosf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @cacosh(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @cacoshf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare double @carg(double, double) [[NUW]] -// CHECK-NOERRNO: declare float @cargf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @casin(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @casinf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @casinh(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @casinhf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @catan(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @catanf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @catanh(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @catanhf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @ccos(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @ccosf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @ccosh(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @ccoshf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @cexp(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @cexpf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare double @cimag(double, double) [[NUW]] -// CHECK-NOERRNO: declare float @cimagf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @conj(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @conjf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @clog(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @clogf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @cproj(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @cprojf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @cpow(double, double, double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @cpowf(<2 x float>, <2 x float>) [[NUW]] -// CHECK-NOERRNO: declare double @creal(double, double) [[NUW]] -// CHECK-NOERRNO: declare float @crealf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @csin(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @csinf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @csinh(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @csinhf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @csqrt(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @csqrtf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @ctan(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @ctanf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare { double, double } @ctanh(double, double) [[NUW]] -// CHECK-NOERRNO: declare <2 x float> @ctanhf(<2 x float>) [[NUW]] -// CHECK-NOERRNO: declare double @__sinpi(double) [[NUW]] -// CHECK-NOERRNO: declare float @__sinpif(float) [[NUW]] -// CHECK-NOERRNO: declare double @__cospi(double) [[NUW]] -// CHECK-NOERRNO: declare float @__cospif(float) [[NUW]] -// CHECK-NOERRNO: declare double @__tanpi(double) [[NUW]] -// CHECK-NOERRNO: declare float @__tanpif(float) [[NUW]] -// CHECK-NOERRNO: declare double @__exp10(double) [[NUW]] -// CHECK-NOERRNO: declare float @__exp10f(float) [[NUW]] +// CHECK-NOERRNO: declare i64 @llrint(double) [[NUWRN]] +// CHECK-NOERRNO: declare i64 @llrintf(float) [[NUWRN]] +// CHECK-NOERRNO: declare i64 @llrintl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare i64 @llround(double) [[NUWRN]] +// CHECK-NOERRNO: declare i64 @llroundf(float) [[NUWRN]] +// CHECK-NOERRNO: declare i64 @llroundl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @log(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @logf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @logl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @log10(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @log10f(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @log10l(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @log1p(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @log1pf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @log1pl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @log2(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @log2f(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @log2l(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @logb(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @logbf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @logbl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare i64 @lrint(double) [[NUWRN]] +// CHECK-NOERRNO: declare i64 @lrintf(float) [[NUWRN]] +// CHECK-NOERRNO: declare i64 @lrintl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare i64 @lround(double) [[NUWRN]] +// CHECK-NOERRNO: declare i64 @lroundf(float) [[NUWRN]] +// CHECK-NOERRNO: declare i64 @lroundl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @nearbyint(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @nearbyintf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @nearbyintl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @nextafter(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @nextafterf(float, float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @nextafterl(x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @nexttoward(double, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare float @nexttowardf(float, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @nexttowardl(x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @remainder(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @remainderf(float, float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @remainderl(x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @rint(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @rintf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @rintl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @round(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @roundf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @roundl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @scalbln(double, i64) [[NUWRN]] +// CHECK-NOERRNO: declare float @scalblnf(float, i64) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @scalblnl(x86_fp80, i64) [[NUWRN]] +// CHECK-NOERRNO: declare double @scalbn(double, i32) [[NUWRN]] +// CHECK-NOERRNO: declare float @scalbnf(float, i32) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @scalbnl(x86_fp80, i32) [[NUWRN]] +// CHECK-NOERRNO: declare double @sin(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @sinf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @sinl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @sinh(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @sinhf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @sinhl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @sqrt(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @sqrtf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @sqrtl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @tan(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @tanf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @tanl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @tanh(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @tanhf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @tanhl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @tgamma(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @tgammaf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @tgammal(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @trunc(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @truncf(float) [[NUWRN]] +// CHECK-NOERRNO: declare x86_fp80 @truncl(x86_fp80) [[NUWRN]] +// CHECK-NOERRNO: declare double @cabs(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @cabsf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @cacos(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @cacosf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @cacosh(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @cacoshf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare double @carg(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @cargf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @casin(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @casinf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @casinh(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @casinhf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @catan(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @catanf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @catanh(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @catanhf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @ccos(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @ccosf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @ccosh(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @ccoshf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @cexp(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @cexpf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare double @cimag(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @cimagf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @conj(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @conjf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @clog(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @clogf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @cproj(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @cprojf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @cpow(double, double, double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @cpowf(<2 x float>, <2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare double @creal(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare float @crealf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @csin(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @csinf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @csinh(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @csinhf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @csqrt(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @csqrtf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @ctan(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @ctanf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare { double, double } @ctanh(double, double) [[NUWRN]] +// CHECK-NOERRNO: declare <2 x float> @ctanhf(<2 x float>) [[NUWRN]] +// CHECK-NOERRNO: declare double @__sinpi(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @__sinpif(float) [[NUWRN]] +// CHECK-NOERRNO: declare double @__cospi(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @__cospif(float) [[NUWRN]] +// CHECK-NOERRNO: declare double @__tanpi(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @__tanpif(float) [[NUWRN]] +// CHECK-NOERRNO: declare double @__exp10(double) [[NUWRN]] +// CHECK-NOERRNO: declare float @__exp10f(float) [[NUWRN]] -// CHECK-ERRNO: declare i32 @abs(i32) [[NUW:#[0-9]+]] -// CHECK-ERRNO: declare i64 @labs(i64) [[NUW]] -// CHECK-ERRNO: declare i64 @llabs(i64) [[NUW]] -// CHECK-ERRNO: declare double @copysign(double, double) [[NUW]] -// CHECK-ERRNO: declare float @copysignf(float, float) [[NUW]] -// CHECK-ERRNO: declare x86_fp80 @copysignl(x86_fp80, x86_fp80) [[NUW]] -// CHECK-ERRNO: declare double @fabs(double) [[NUW]] -// CHECK-ERRNO: declare float @fabsf(float) [[NUW]] -// CHECK-ERRNO: declare x86_fp80 @fabsl(x86_fp80) [[NUW]] -// CHECK-ERRNO: declare double @nan(i8*) [[NUW]] +// CHECK-ERRNO: declare i32 @abs(i32) [[NUWRN:#[0-9]+]] +// CHECK-ERRNO: declare i64 @labs(i64) [[NUWRN]] +// CHECK-ERRNO: declare i64 @llabs(i64) [[NUWRN]] +// CHECK-ERRNO: declare double @copysign(double, double) [[NUWRN]] +// CHECK-ERRNO: declare float @copysignf(float, float) [[NUWRN]] +// CHECK-ERRNO: declare x86_fp80 @copysignl(x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-ERRNO: declare double @fabs(double) [[NUWRN]] +// CHECK-ERRNO: declare float @fabsf(float) [[NUWRN]] +// CHECK-ERRNO: declare x86_fp80 @fabsl(x86_fp80) [[NUWRN]] +// CHECK-ERRNO: declare double @nan(i8*) [[NUW:#[0-9]+]] // CHECK-ERRNO: declare float @nanf(i8*) [[NUW]] // CHECK-ERRNO: declare x86_fp80 @nanl(i8*) [[NUW]] -// CHECK-ERRNO: declare double @ceil(double) [[NUW]] -// CHECK-ERRNO: declare float @ceilf(float) [[NUW]] -// CHECK-ERRNO: declare x86_fp80 @ceill(x86_fp80) [[NUW]] -// CHECK-ERRNO: declare double @floor(double) [[NUW]] -// CHECK-ERRNO: declare float @floorf(float) [[NUW]] -// CHECK-ERRNO: declare x86_fp80 @floorl(x86_fp80) [[NUW]] -// CHECK-ERRNO: declare double @fmax(double, double) [[NUW]] -// CHECK-ERRNO: declare float @fmaxf(float, float) [[NUW]] -// CHECK-ERRNO: declare x86_fp80 @fmaxl(x86_fp80, x86_fp80) [[NUW]] -// CHECK-ERRNO: declare double @fmin(double, double) [[NUW]] -// CHECK-ERRNO: declare float @fminf(float, float) [[NUW]] -// CHECK-ERRNO: declare x86_fp80 @fminl(x86_fp80, x86_fp80) [[NUW]] +// CHECK-ERRNO: declare double @ceil(double) [[NUWRN]] +// CHECK-ERRNO: declare float @ceilf(float) [[NUWRN]] +// CHECK-ERRNO: declare x86_fp80 @ceill(x86_fp80) [[NUWRN]] +// CHECK-ERRNO: declare double @floor(double) [[NUWRN]] +// CHECK-ERRNO: declare float @floorf(float) [[NUWRN]] +// CHECK-ERRNO: declare x86_fp80 @floorl(x86_fp80) [[NUWRN]] +// CHECK-ERRNO: declare double @fmax(double, double) [[NUWRN]] +// CHECK-ERRNO: declare float @fmaxf(float, float) [[NUWRN]] +// CHECK-ERRNO: declare x86_fp80 @fmaxl(x86_fp80, x86_fp80) [[NUWRN]] +// CHECK-ERRNO: declare double @fmin(double, double) [[NUWRN]] +// CHECK-ERRNO: declare float @fminf(float, float) [[NUWRN]] +// CHECK-ERRNO: declare x86_fp80 @fminl(x86_fp80, x86_fp80) [[NUWRN]] // CHECK-ERRNO: declare double @lgamma(double) [[NONCONST:#[0-9]+]] // CHECK-ERRNO: declare float @lgammaf(float) [[NONCONST]] // CHECK-ERRNO: declare x86_fp80 @lgammal(x86_fp80) [[NONCONST]] -// CHECK-ERRNO: declare double @nearbyint(double) [[NUW]] -// CHECK-ERRNO: declare float @nearbyintf(float) [[NUW]] -// CHECK-ERRNO: declare x86_fp80 @nearbyintl(x86_fp80) [[NUW]] -// CHECK-ERRNO: declare double @rint(double) [[NUW]] -// CHECK-ERRNO: declare float @rintf(float) [[NUW]] -// CHECK-ERRNO: declare x86_fp80 @rintl(x86_fp80) [[NUW]] -// CHECK-ERRNO: declare double @round(double) [[NUW]] -// CHECK-ERRNO: declare float @roundf(float) [[NUW]] -// CHECK-ERRNO: declare x86_fp80 @roundl(x86_fp80) [[NUW]] -// CHECK-ERRNO: declare double @trunc(double) [[NUW]] -// CHECK-ERRNO: declare float @truncf(float) [[NUW]] -// CHECK-ERRNO: declare x86_fp80 @truncl(x86_fp80) [[NUW]] -// CHECK-ERRNO: declare double @cabs(double, double) [[NUW]] -// CHECK-ERRNO: declare float @cabsf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @cacos(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @cacosf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @cacosh(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @cacoshf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare double @carg(double, double) [[NUW]] -// CHECK-ERRNO: declare float @cargf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @casin(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @casinf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @casinh(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @casinhf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @catan(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @catanf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @catanh(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @catanhf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @ccos(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @ccosf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @ccosh(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @ccoshf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @cexp(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @cexpf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare double @cimag(double, double) [[NUW]] -// CHECK-ERRNO: declare float @cimagf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @conj(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @conjf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @clog(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @clogf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @cproj(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @cprojf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @cpow(double, double, double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @cpowf(<2 x float>, <2 x float>) [[NUW]] -// CHECK-ERRNO: declare double @creal(double, double) [[NUW]] -// CHECK-ERRNO: declare float @crealf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @csin(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @csinf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @csinh(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @csinhf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @csqrt(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @csqrtf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @ctan(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @ctanf(<2 x float>) [[NUW]] -// CHECK-ERRNO: declare { double, double } @ctanh(double, double) [[NUW]] -// CHECK-ERRNO: declare <2 x float> @ctanhf(<2 x float>) [[NUW]] +// CHECK-ERRNO: declare double @nearbyint(double) [[NUWRN]] +// CHECK-ERRNO: declare float @nearbyintf(float) [[NUWRN]] +// CHECK-ERRNO: declare x86_fp80 @nearbyintl(x86_fp80) [[NUWRN]] +// CHECK-ERRNO: declare double @rint(double) [[NUWRN]] +// CHECK-ERRNO: declare float @rintf(float) [[NUWRN]] +// CHECK-ERRNO: declare x86_fp80 @rintl(x86_fp80) [[NUWRN]] +// CHECK-ERRNO: declare double @round(double) [[NUWRN]] +// CHECK-ERRNO: declare float @roundf(float) [[NUWRN]] +// CHECK-ERRNO: declare x86_fp80 @roundl(x86_fp80) [[NUWRN]] +// CHECK-ERRNO: declare double @trunc(double) [[NUWRN]] +// CHECK-ERRNO: declare float @truncf(float) [[NUWRN]] +// CHECK-ERRNO: declare x86_fp80 @truncl(x86_fp80) [[NUWRN]] +// CHECK-ERRNO: declare double @cabs(double, double) [[NUWRN]] +// CHECK-ERRNO: declare float @cabsf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @cacos(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @cacosf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @cacosh(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @cacoshf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare double @carg(double, double) [[NUWRN]] +// CHECK-ERRNO: declare float @cargf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @casin(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @casinf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @casinh(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @casinhf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @catan(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @catanf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @catanh(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @catanhf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @ccos(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @ccosf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @ccosh(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @ccoshf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @cexp(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @cexpf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare double @cimag(double, double) [[NUWRN]] +// CHECK-ERRNO: declare float @cimagf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @conj(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @conjf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @clog(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @clogf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @cproj(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @cprojf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @cpow(double, double, double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @cpowf(<2 x float>, <2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare double @creal(double, double) [[NUWRN]] +// CHECK-ERRNO: declare float @crealf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @csin(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @csinf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @csinh(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @csinhf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @csqrt(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @csqrtf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @ctan(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @ctanf(<2 x float>) [[NUWRN]] +// CHECK-ERRNO: declare { double, double } @ctanh(double, double) [[NUWRN]] +// CHECK-ERRNO: declare <2 x float> @ctanhf(<2 x float>) [[NUWRN]] -// CHECK-NOERRNO: attributes [[NUW]] = { nounwind readnone{{.*}} } -// CHECK-NOERRNO: attributes [[NONCONST]] = { +// CHECK-NOERRNO: attributes [[NUWRN]] = { nounwind readnone{{.*}} } +// CHECK-NOERRNO: attributes [[NUW]] = { nounwind // CHECK-NOERRNO-NOT: readnone -// CHECK-NOERRNO-SAME: nounwind{{.*}} } +// CHECK-NOERRNO-SAME: {{.*}} } -// CHECK-ERRNO: attributes [[NONCONST]] = { +// CHECK-ERRNO: attributes [[NUW]] = { nounwind // CHECK-ERRNO-NOT: readnone -// CHECK-ERRNO-SAME: nounwind{{.*}} } -// CHECK-ERRNO: attributes [[NUW]] = { nounwind readnone{{.*}} } +// CHECK-ERRNO-SAME: {{.*}} } +// CHECK-ERRNO: attributes [[NUWRN]] = { nounwind readnone{{.*}} }