+define double @test_acos() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_acos(
+; CHECK-NOT: call
+ %0 = call double @acos(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_asin() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_asin(
+; CHECK-NOT: call
+ %0 = call double @asin(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_atan() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_atan(
+; CHECK-NOT: call
+ %0 = call double @atan(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_atan2() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_atan2(
+; CHECK-NOT: call
+ %0 = call double @atan2(double 3.000000e+00, double 4.000000e+00)
+ ret double %0
+}
+
+define double @test_ceil() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_ceil(
+; CHECK-NOT: call
+ %0 = call double @ceil(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_cos() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_cos(
+; CHECK-NOT: call
+ %0 = call double @cos(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_cosh() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_cosh(
+; CHECK-NOT: call
+ %0 = call double @cosh(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_exp() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_exp(
+; CHECK-NOT: call
+ %0 = call double @exp(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_exp2() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_exp2(
+; CHECK-NOT: call
+ %0 = call double @exp2(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_fabs() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_fabs(
+; CHECK-NOT: call
+ %0 = call double @fabs(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_floor() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_floor(
+; CHECK-NOT: call
+ %0 = call double @floor(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_fmod() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_fmod(
+; CHECK-NOT: call
+ %0 = call double @fmod(double 3.000000e+00, double 4.000000e+00)
+ ret double %0
+}
+
+define double @test_log() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_log(
+; CHECK-NOT: call
+ %0 = call double @log(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_log10() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_log10(
+; CHECK-NOT: call
+ %0 = call double @log10(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_pow() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_pow(
+; CHECK-NOT: call
+ %0 = call double @pow(double 3.000000e+00, double 4.000000e+00)
+ ret double %0
+}
+
+define double @test_sin() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_sin(
+; CHECK-NOT: call
+ %0 = call double @sin(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_sinh() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_sinh(
+; CHECK-NOT: call
+ %0 = call double @sinh(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_sqrt() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_sqrt(
+; CHECK-NOT: call
+ %0 = call double @sqrt(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_tan() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_tan(
+; CHECK-NOT: call
+ %0 = call double @tan(double 3.000000e+00)
+ ret double %0
+}
+
+define double @test_tanh() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_tanh(
+; CHECK-NOT: call
+ %0 = call double @tanh(double 3.000000e+00)
+ ret double %0
+}
+
+define float @test_acosf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_acosf(
+; CHECK-NOT: call
+ %0 = call float @acosf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_asinf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_asinf(
+; CHECK-NOT: call
+ %0 = call float @asinf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_atanf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_atanf(
+; CHECK-NOT: call
+ %0 = call float @atanf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_atan2f() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_atan2f(
+; CHECK-NOT: call
+ %0 = call float @atan2f(float 3.000000e+00, float 4.000000e+00)
+ ret float %0
+}
+
+define float @test_ceilf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_ceilf(
+; CHECK-NOT: call
+ %0 = call float @ceilf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_cosf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_cosf(
+; CHECK-NOT: call
+ %0 = call float @cosf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_coshf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_coshf(
+; CHECK-NOT: call
+ %0 = call float @coshf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_expf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_expf(
+; CHECK-NOT: call
+ %0 = call float @expf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_exp2f() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_exp2f(
+; CHECK-NOT: call
+ %0 = call float @exp2f(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_fabsf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_fabsf(
+; CHECK-NOT: call
+ %0 = call float @fabsf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_floorf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_floorf(
+; CHECK-NOT: call
+ %0 = call float @floorf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_fmodf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_fmodf(
+; CHECK-NOT: call
+ %0 = call float @fmodf(float 3.000000e+00, float 4.000000e+00)
+ ret float %0
+}
+
+define float @test_logf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_logf(
+; CHECK-NOT: call
+ %0 = call float @logf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_log10f() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_log10f(
+; CHECK-NOT: call
+ %0 = call float @log10f(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_powf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_powf(
+; CHECK-NOT: call
+ %0 = call float @powf(float 3.000000e+00, float 4.000000e+00)
+ ret float %0
+}
+
+define float @test_sinf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_sinf(
+; CHECK-NOT: call
+ %0 = call float @sinf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_sinhf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_sinhf(
+; CHECK-NOT: call
+ %0 = call float @sinhf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_sqrtf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_sqrtf(
+; CHECK-NOT: call
+ %0 = call float @sqrtf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_tanf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_tanf(
+; CHECK-NOT: call
+ %0 = call float @tanf(float 3.000000e+00)
+ ret float %0
+}
+
+define float @test_tanhf() nounwind uwtable ssp {
+entry:
+; CHECK-LABEL: @test_tanhf(
+; CHECK-NOT: call
+ %0 = call float @tanhf(float 3.000000e+00)
+ ret float %0
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @acos_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @acos_(
+; FNOBUILTIN: %1 = call double @acos(double 3.000000e+00)
+ %1 = call double @acos(double 3.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @asin_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @asin_(
+; FNOBUILTIN: %1 = call double @asin(double 3.000000e+00)
+ %1 = call double @asin(double 3.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @atan_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @atan_(
+; FNOBUILTIN: %1 = call double @atan(double 3.000000e+00)
+ %1 = call double @atan(double 3.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @atan2_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @atan2_(
+; FNOBUILTIN: %1 = call double @atan2(double 3.000000e+00, double 4.000000e+00)
+ %1 = call double @atan2(double 3.000000e+00, double 4.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @ceil_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @ceil_(
+; FNOBUILTIN: %1 = call double @ceil(double 3.000000e+00)
+ %1 = call double @ceil(double 3.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @cos_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @cos_(
+; FNOBUILTIN: %1 = call double @cos(double 3.000000e+00)
+ %1 = call double @cos(double 3.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @cosh_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @cosh_(
+; FNOBUILTIN: %1 = call double @cosh(double 3.000000e+00)
+ %1 = call double @cosh(double 3.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @exp_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @exp_(
+; FNOBUILTIN: %1 = call double @exp(double 3.000000e+00)
+ %1 = call double @exp(double 3.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @exp2_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @exp2_(
+; FNOBUILTIN: %1 = call double @exp2(double 3.000000e+00)
+ %1 = call double @exp2(double 3.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @fabs_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @fabs_(
+; FNOBUILTIN: %1 = call double @fabs(double 3.000000e+00)
+ %1 = call double @fabs(double 3.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @floor_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @floor_(
+; FNOBUILTIN: %1 = call double @floor(double 3.000000e+00)
+ %1 = call double @floor(double 3.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @fmod_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @fmod_(
+; FNOBUILTIN: %1 = call double @fmod(double 3.000000e+00, double 4.000000e+00)
+ %1 = call double @fmod(double 3.000000e+00, double 4.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @log_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @log_(
+; FNOBUILTIN: %1 = call double @log(double 3.000000e+00)
+ %1 = call double @log(double 3.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @log10_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @log10_(
+; FNOBUILTIN: %1 = call double @log10(double 3.000000e+00)
+ %1 = call double @log10(double 3.000000e+00)
+ ret double %1
+}
+
+; Shouldn't fold because of -fno-builtin
+define double @pow_() nounwind uwtable ssp {
+; FNOBUILTIN-LABEL: @pow_(
+; FNOBUILTIN: %1 = call double @pow(double 3.000000e+00, double 4.000000e+00)
+ %1 = call double @pow(double 3.000000e+00, double 4.000000e+00)
+ ret double %1
+}
+