void foo(double *d, float f, float *fp, long double *l, int *i, const char *c) {
  f = __builtin_fmod(f, f);
  f = __builtin_fmodf(f, f);
  f = __builtin_fmodl(f, f);
  __builtin_atan2(f, f);
  __builtin_atan2f(f, f);
  __builtin_atan2l(f, f);
  __builtin_copysign(f, f);
  __builtin_copysignf(f, f);
  __builtin_copysignl(f, f);
  __builtin_copysignf128(f, f);
  __builtin_fabs(f);
  __builtin_fabsf(f);
  __builtin_fabsl(f);
  __builtin_fabsf128(f);
  __builtin_frexp(f, i);
  __builtin_frexpf(f, i);
  __builtin_frexpl(f, i);
  __builtin_huge_val();
  __builtin_huge_valf();
  __builtin_huge_vall();
  __builtin_huge_valf128();
  __builtin_inf();
  __builtin_inff();
  __builtin_infl();
  __builtin_inff128();
  __builtin_ldexp(f, f);
  __builtin_ldexpf(f, f);
  __builtin_ldexpl(f, f);
  __builtin_modf(f, d);
  __builtin_modff(f, fp);
  __builtin_modfl(f, l);
  __builtin_nan(c);
  __builtin_nanf(c);
  __builtin_nanl(c);
  __builtin_nanf128(c);
  __builtin_nans(c);
  __builtin_nansf(c);
  __builtin_nansl(c);
  __builtin_nansf128(c);
  __builtin_pow(f, f);
  __builtin_powf(f, f);
  __builtin_powl(f, f);
  __builtin_powi(f, f);
  __builtin_powif(f, f);
  __builtin_powil(f, f);
  __builtin_acos(f);
  __builtin_acosf(f);
  __builtin_acosl(f);
  __builtin_acosh(f);
  __builtin_acoshf(f);
  __builtin_acoshl(f);
  __builtin_asin(f);
  __builtin_asinf(f);
  __builtin_asinl(f);
  __builtin_asinh(f);
  __builtin_asinhf(f);
  __builtin_asinhl(f);
  __builtin_atan(f);
  __builtin_atanf(f);
  __builtin_atanl(f);
  __builtin_atanh(f);
  __builtin_atanhf(f);
  __builtin_atanhl(f);
  __builtin_cbrt(f);
  __builtin_cbrtf(f);
  __builtin_cbrtl(f);
  __builtin_ceil(f);
  __builtin_ceilf(f);
  __builtin_ceill(f);
  __builtin_cos(f);
  __builtin_cosf(f);
  __builtin_cosl(f);
  __builtin_cosh(f);
  __builtin_coshf(f);
  __builtin_coshl(f);
  __builtin_erf(f);
  __builtin_erff(f);
  __builtin_erfl(f);
  __builtin_erfc(f);
  __builtin_erfcf(f);
  __builtin_erfcl(f);
  __builtin_exp(f);
  __builtin_expf(f);
  __builtin_expl(f);
  __builtin_exp2(f);
  __builtin_exp2f(f);
  __builtin_exp2l(f);
  __builtin_expm1(f);
  __builtin_expm1f(f);
  __builtin_expm1l(f);
  __builtin_fdim(f, f);
  __builtin_fdimf(f, f);
  __builtin_fdiml(f, f);
  __builtin_floor(f);
  __builtin_floorf(f);
  __builtin_floorl(f);
  __builtin_fma(f, f, f);
  __builtin_fmaf(f, f, f);
  __builtin_fmal(f, f, f);
  __builtin_fmax(f, f);
  __builtin_fmaxf(f, f);
  __builtin_fmaxl(f, f);
  __builtin_fmin(f, f);
  __builtin_fminf(f, f);
  __builtin_fminl(f, f);
  __builtin_hypot(f, f);
  __builtin_hypotf(f, f);
  __builtin_hypotl(f, f);
  __builtin_ilogb(f);
  __builtin_ilogbf(f);
  __builtin_ilogbl(f);
  __builtin_lgamma(f);
  __builtin_lgammaf(f);
  __builtin_lgammal(f);
  __builtin_llrint(f);
  __builtin_llrintf(f);
  __builtin_llrintl(f);
  __builtin_llround(f);
  __builtin_llroundf(f);
  __builtin_llroundl(f);
  __builtin_log(f);
  __builtin_logf(f);
  __builtin_logl(f);
  __builtin_log10(f);
  __builtin_log10f(f);
  __builtin_log10l(f);
  __builtin_log1p(f);
  __builtin_log1pf(f);
  __builtin_log1pl(f);
  __builtin_log2(f);
  __builtin_log2f(f);
  __builtin_log2l(f);
  __builtin_logb(f);
  __builtin_logbf(f);
  __builtin_logbl(f);
  __builtin_lrint(f);
  __builtin_lrintf(f);
  __builtin_lrintl(f);
  __builtin_lround(f);
  __builtin_lroundf(f);
  __builtin_lroundl(f);
  __builtin_nearbyint(f);
  __builtin_nearbyintf(f);
  __builtin_nearbyintl(f);
  __builtin_nextafter(f, f);
  __builtin_nextafterf(f, f);
  __builtin_nextafterl(f, f);
  __builtin_nexttoward(f, f);
  __builtin_nexttowardf(f, f);
  __builtin_nexttowardl(f, f);
  __builtin_remainder(f, f);
  __builtin_remainderf(f, f);
  __builtin_remainderl(f, f);
  __builtin_remquo(f, f, i);
  __builtin_remquof(f, f, i);
  __builtin_remquol(f, f, i);
  __builtin_rint(f);
  __builtin_rintf(f);
  __builtin_rintl(f);
  __builtin_round(f);
  __builtin_roundf(f);
  __builtin_roundl(f);
  __builtin_scalbln(f, f);
  __builtin_scalblnf(f, f);
  __builtin_scalblnl(f, f);
  __builtin_scalbn(f, f);
  __builtin_scalbnf(f, f);
  __builtin_scalbnl(f, f);
  __builtin_sin(f);
  __builtin_sinf(f);
  __builtin_sinl(f);
  __builtin_sinh(f);
  __builtin_sinhf(f);
  __builtin_sinhl(f);
  __builtin_sqrt(f);
  __builtin_sqrtf(f);
  __builtin_sqrtl(f);
  __builtin_tan(f);
  __builtin_tanf(f);
  __builtin_tanl(f);
  __builtin_tanh(f);
  __builtin_tanhf(f);
  __builtin_tanhl(f);
  __builtin_tgamma(f);
  __builtin_tgammaf(f);
  __builtin_tgammal(f);
  __builtin_trunc(f);
  __builtin_truncf(f);
  __builtin_truncl(f);
}


x86 assembly (clang, -O0):
<foo>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
mov    %rdi,-0x8(%rbp)
movss  %xmm0,-0xc(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movaps %xmm1,%xmm0
call   3330 <fmod@plt>
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xc(%rbp)
movss  -0xc(%rbp),%xmm1
movaps %xmm1,%xmm0
call   3380 <fmodf@plt>
movss  %xmm0,-0xc(%rbp)
flds   -0xc(%rbp)
mov    %rsp,%rax
fld    %st(0)
fstpt  0x10(%rax)
fstpt  (%rax)
call   3320 <fmodl@plt>
fstps  -0xc(%rbp)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movaps %xmm1,%xmm0
call   31f0 <atan2@plt>
movss  -0xc(%rbp),%xmm1
movaps %xmm1,%xmm0
call   38c0 <atan2f@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fld    %st(0)
fstpt  0x10(%rax)
fstpt  (%rax)
call   38b0 <atan2l@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    -0x28(%rbp),%rdi
call   3470 <frexp@plt>
movss  -0xc(%rbp),%xmm0
mov    -0x28(%rbp),%rdi
call   3810 <frexpf@plt>
flds   -0xc(%rbp)
mov    -0x28(%rbp),%rdi
mov    %rsp,%rax
fstpt  (%rax)
call   35c0 <frexpl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm1
cvtss2sd %xmm1,%xmm0
cvttss2si %xmm1,%edi
call   30a0 <ldexp@plt>
movss  -0xc(%rbp),%xmm0
cvttss2si %xmm0,%edi
call   3880 <ldexpf@plt>
movss  -0xc(%rbp),%xmm0
movss  %xmm0,-0x34(%rbp)
flds   -0x34(%rbp)
cvttss2si %xmm0,%edi
mov    %rsp,%rax
fstpt  (%rax)
call   3610 <ldexpl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
mov    -0x8(%rbp),%rdi
call   3370 <modf@plt>
movss  -0xc(%rbp),%xmm0
mov    -0x18(%rbp),%rdi
call   32f0 <modff@plt>
flds   -0xc(%rbp)
mov    -0x20(%rbp),%rdi
mov    %rsp,%rax
fstpt  (%rax)
call   3450 <modfl@plt>
fstp   %st(0)
mov    -0x30(%rbp),%rdi
call   30b0 <nan@plt>
mov    -0x30(%rbp),%rdi
call   34d0 <nanf@plt>
mov    -0x30(%rbp),%rdi
call   34f0 <nanl@plt>
fstp   %st(0)
mov    -0x30(%rbp),%rdi
call   37e0 <nanf128@plt>
mov    -0x30(%rbp),%rdi
call   3910 <nans@plt>
mov    -0x30(%rbp),%rdi
call   3310 <nansf@plt>
mov    -0x30(%rbp),%rdi
call   3300 <nansl@plt>
fstp   %st(0)
mov    -0x30(%rbp),%rdi
call   31b0 <nansf128@plt>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movaps %xmm1,%xmm0
call   37c0 <pow@plt>
movss  -0xc(%rbp),%xmm1
movaps %xmm1,%xmm0
call   3180 <powf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fld    %st(0)
fstpt  0x10(%rax)
fstpt  (%rax)
call   3170 <powl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   33c0 <acos@plt>
movss  -0xc(%rbp),%xmm0
call   33a0 <acosf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3350 <acosl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3390 <acosh@plt>
movss  -0xc(%rbp),%xmm0
call   37a0 <acoshf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   37b0 <acoshl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3580 <asin@plt>
movss  -0xc(%rbp),%xmm0
call   3890 <asinf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3860 <asinl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3850 <asinh@plt>
movss  -0xc(%rbp),%xmm0
call   3760 <asinhf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3770 <asinhl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3550 <atan@plt>
movss  -0xc(%rbp),%xmm0
call   3280 <atanf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3270 <atanl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3290 <atanh@plt>
movss  -0xc(%rbp),%xmm0
call   3640 <atanhf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3660 <atanhl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3720 <cbrt@plt>
movss  -0xc(%rbp),%xmm0
call   34c0 <cbrtf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   34a0 <cbrtl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3750 <cos@plt>
movss  -0xc(%rbp),%xmm0
call   32a0 <cosf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   32e0 <cosl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   32b0 <cosh@plt>
movss  -0xc(%rbp),%xmm0
call   3260 <coshf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   31e0 <coshl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3870 <erf@plt>
movss  -0xc(%rbp),%xmm0
call   3460 <erff@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3490 <erfl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   38d0 <erfc@plt>
movss  -0xc(%rbp),%xmm0
call   32d0 <erfcf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   31a0 <erfcl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3620 <exp@plt>
movss  -0xc(%rbp),%xmm0
call   33b0 <expf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3440 <expl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3360 <exp2@plt>
movss  -0xc(%rbp),%xmm0
call   33f0 <exp2f@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3400 <exp2l@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   37f0 <expm1@plt>
movss  -0xc(%rbp),%xmm0
call   36e0 <expm1f@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3690 <expm1l@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movaps %xmm1,%xmm0
call   35e0 <fdim@plt>
movss  -0xc(%rbp),%xmm1
movaps %xmm1,%xmm0
call   3200 <fdimf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fld    %st(0)
fstpt  0x10(%rax)
fstpt  (%rax)
call   31c0 <fdiml@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movaps %xmm1,%xmm0
call   35d0 <hypot@plt>
movss  -0xc(%rbp),%xmm1
movaps %xmm1,%xmm0
call   31d0 <hypotf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fld    %st(0)
fstpt  0x10(%rax)
fstpt  (%rax)
call   3220 <hypotl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3480 <ilogb@plt>
movss  -0xc(%rbp),%xmm0
call   3150 <ilogbf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3110 <ilogbl@plt>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   36a0 <lgamma@plt>
movss  -0xc(%rbp),%xmm0
call   36b0 <lgammaf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3670 <lgammal@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   30c0 <llrint@plt>
movss  -0xc(%rbp),%xmm0
call   33d0 <llrintf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3680 <llrintl@plt>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3410 <llround@plt>
movss  -0xc(%rbp),%xmm0
call   3520 <llroundf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3510 <llroundl@plt>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3790 <log@plt>
movss  -0xc(%rbp),%xmm0
call   3160 <logf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3210 <logl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3820 <log10@plt>
movss  -0xc(%rbp),%xmm0
call   37d0 <log10f@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   38a0 <log10l@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   38e0 <log1p@plt>
movss  -0xc(%rbp),%xmm0
call   3190 <log1pf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3250 <log1pl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3120 <log2@plt>
movss  -0xc(%rbp),%xmm0
call   3570 <log2f@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3540 <log2l@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3140 <logb@plt>
movss  -0xc(%rbp),%xmm0
call   3530 <logbf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3500 <logbl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   34e0 <lrint@plt>
movss  -0xc(%rbp),%xmm0
call   3100 <lrintf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   30d0 <lrintl@plt>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3130 <lround@plt>
movss  -0xc(%rbp),%xmm0
call   3600 <lroundf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3560 <lroundl@plt>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movaps %xmm1,%xmm0
call   3730 <nextafter@plt>
movss  -0xc(%rbp),%xmm1
movaps %xmm1,%xmm0
call   3800 <nextafterf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fld    %st(0)
fstpt  0x10(%rax)
fstpt  (%rax)
call   3040 <nextafterl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm1
cvtss2sd %xmm1,%xmm0
movss  %xmm1,-0x38(%rbp)
flds   -0x38(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3090 <nexttoward@plt>
movss  -0xc(%rbp),%xmm0
movss  %xmm0,-0x3c(%rbp)
flds   -0x3c(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3430 <nexttowardf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fld    %st(0)
fstpt  0x10(%rax)
fstpt  (%rax)
call   3340 <nexttowardl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movaps %xmm1,%xmm0
call   3590 <remainder@plt>
movss  -0xc(%rbp),%xmm1
movaps %xmm1,%xmm0
call   3700 <remainderf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fld    %st(0)
fstpt  0x10(%rax)
fstpt  (%rax)
call   36d0 <remainderl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
mov    -0x28(%rbp),%rdi
movaps %xmm1,%xmm0
call   3740 <remquo@plt>
movss  -0xc(%rbp),%xmm1
mov    -0x28(%rbp),%rdi
movaps %xmm1,%xmm0
call   3710 <remquof@plt>
flds   -0xc(%rbp)
mov    -0x28(%rbp),%rdi
mov    %rsp,%rax
fld    %st(0)
fstpt  0x10(%rax)
fstpt  (%rax)
call   36f0 <remquol@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm1
cvtss2sd %xmm1,%xmm0
cvttss2si %xmm1,%rdi
call   3420 <scalbln@plt>
movss  -0xc(%rbp),%xmm0
cvttss2si %xmm0,%rdi
call   3780 <scalblnf@plt>
movss  -0xc(%rbp),%xmm0
movss  %xmm0,-0x40(%rbp)
flds   -0x40(%rbp)
cvttss2si %xmm0,%rdi
mov    %rsp,%rax
fstpt  (%rax)
call   3830 <scalblnl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm1
cvtss2sd %xmm1,%xmm0
cvttss2si %xmm1,%edi
call   35a0 <scalbn@plt>
movss  -0xc(%rbp),%xmm0
cvttss2si %xmm0,%edi
call   3060 <scalbnf@plt>
movss  -0xc(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
flds   -0x44(%rbp)
cvttss2si %xmm0,%edi
mov    %rsp,%rax
fstpt  (%rax)
call   38f0 <scalbnl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   34b0 <sin@plt>
movss  -0xc(%rbp),%xmm0
call   30e0 <sinf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3070 <sinl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   30f0 <sinh@plt>
movss  -0xc(%rbp),%xmm0
call   3900 <sinhf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   33e0 <sinhl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3840 <sqrt@plt>
movss  -0xc(%rbp),%xmm0
call   3650 <sqrtf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   35f0 <sqrtl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   36c0 <tan@plt>
movss  -0xc(%rbp),%xmm0
call   3230 <tanf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   32c0 <tanl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3240 <tanh@plt>
movss  -0xc(%rbp),%xmm0
call   3030 <tanhf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   3050 <tanhl@plt>
fstp   %st(0)
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
call   3080 <tgamma@plt>
movss  -0xc(%rbp),%xmm0
call   3630 <tgammaf@plt>
flds   -0xc(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   35b0 <tgammal@plt>
fstp   %st(0)
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<foo>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x48,%rsp
mov    %rcx,%r14
mov    %rdx,%r12
mov    %rsi,%rbp
mov    %rdi,%rbx
cvtss2sd %xmm0,%xmm0
movaps %xmm0,%xmm1
call   32f0 <fmod@plt>
cvtsd2ss %xmm0,%xmm0
movaps %xmm0,%xmm1
call   3340 <fmodf@plt>
movss  %xmm0,0x44(%rsp)
flds   0x44(%rsp)
fld    %st(0)
fstpt  0x10(%rsp)
fstpt  (%rsp)
call   32e0 <fmodl@plt>
fstps  0x40(%rsp)
movss  0x40(%rsp),%xmm0
movss  %xmm0,0x24(%rsp)
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,0x28(%rsp)
movaps %xmm0,%xmm1
call   31d0 <atan2@plt>
movss  0x24(%rsp),%xmm0
movaps %xmm0,%xmm1
call   3810 <atan2f@plt>
movss  0x24(%rsp),%xmm0
movss  %xmm0,0x3c(%rsp)
flds   0x3c(%rsp)
fld    %st(0)
fstpt  0x30(%rsp)
fld    %st(0)
fstpt  0x10(%rsp)
fstpt  (%rsp)
call   3800 <atan2l@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
mov    %r14,%rdi
call   3430 <frexp@plt>
movss  0x24(%rsp),%xmm0
mov    %r14,%rdi
call   3770 <frexpf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
mov    %r14,%rdi
call   3540 <frexpl@plt>
fstp   %st(0)
cvttss2si 0x24(%rsp),%r15d
movsd  0x28(%rsp),%xmm0
mov    %r15d,%edi
call   30a0 <ldexp@plt>
movss  0x24(%rsp),%xmm0
mov    %r15d,%edi
call   37d0 <ldexpf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
mov    %r15d,%edi
call   3590 <ldexpl@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
mov    %rbx,%rdi
call   3330 <modf@plt>
movss  0x24(%rsp),%xmm0
mov    %rbp,%rdi
call   32d0 <modff@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
mov    %r12,%rdi
call   3410 <modfl@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
movaps %xmm0,%xmm1
call   3730 <pow@plt>
movss  0x24(%rsp),%xmm0
movaps %xmm0,%xmm1
call   3170 <powf@plt>
fldt   0x30(%rsp)
fld    %st(0)
fstpt  0x10(%rsp)
fstpt  (%rsp)
call   3160 <powl@plt>
fstp   %st(0)
movss  0x24(%rsp),%xmm1
ucomiss 0x1565(%rip),%xmm1
seta   %al
movss  0x155e(%rip),%xmm0
ucomiss %xmm1,%xmm0
seta   %bl
or     %al,%bl
cmp    $0x1,%bl
je     4040 <foo+0x710>
movss  0x1541(%rip),%xmm0
ucomiss %xmm1,%xmm0
ja     406f <foo+0x73f>
test   %bl,%bl
jne    409b <foo+0x76b>
movsd  0x28(%rsp),%xmm0
call   37a0 <asinh@plt>
movss  0x24(%rsp),%xmm0
call   36d0 <asinhf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   36e0 <asinhl@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
call   34d0 <atan@plt>
movss  0x24(%rsp),%xmm0
call   3260 <atanf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3250 <atanl@plt>
fstp   %st(0)
movss  0x24(%rsp),%xmm0
movss  0x14de(%rip),%xmm1
ucomiss %xmm0,%xmm1
jae    429e <foo+0x96e>
ucomiss 0x14ca(%rip),%xmm0
jae    429e <foo+0x96e>
movss  0x14c4(%rip),%xmm1
ucomiss %xmm0,%xmm1
setae  %al
ucomiss 0x14bb(%rip),%xmm0
setae  %cl
or     %al,%cl
mov    %cl,0x3b(%rsp)
cmp    $0x1,%cl
je     40c4 <foo+0x794>
movss  0x14a5(%rip),%xmm1
ucomiss %xmm0,%xmm1
seta   %al
ucomiss 0x149c(%rip),%xmm0
seta   %r12b
or     %al,%r12b
cmp    $0x1,%r12b
je     40f3 <foo+0x7c3>
movss  0x1487(%rip),%xmm1
ucomiss %xmm0,%xmm1
seta   %al
ucomiss 0x147e(%rip),%xmm0
seta   %r13b
or     %al,%r13b
cmp    $0x1,%r13b
je     4109 <foo+0x7d9>
movss  0x1469(%rip),%xmm1
ucomiss %xmm0,%xmm1
seta   %al
ucomiss 0x1460(%rip),%xmm0
seta   %bpl
or     %al,%bpl
cmp    $0x1,%bpl
je     4119 <foo+0x7e9>
movsd  0x28(%rsp),%xmm0
call   37c0 <erf@plt>
movss  0x24(%rsp),%xmm0
call   3420 <erff@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3450 <erfl@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
call   3820 <erfc@plt>
movss  0x24(%rsp),%xmm0
call   32b0 <erfcf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3190 <erfcl@plt>
fstp   %st(0)
movss  0x24(%rsp),%xmm0
ucomiss 0x13fe(%rip),%xmm0
ja     42cd <foo+0x99d>
movss  0x13f4(%rip),%xmm1
ucomiss %xmm0,%xmm1
ja     42cd <foo+0x99d>
ucomiss 0x13e8(%rip),%xmm0
ja     42eb <foo+0x9bb>
movss  0x13de(%rip),%xmm1
ucomiss %xmm0,%xmm1
ja     42eb <foo+0x9bb>
ucomiss 0x13d2(%rip),%xmm0
ja     4303 <foo+0x9d3>
movss  0x13c8(%rip),%xmm1
ucomiss %xmm0,%xmm1
ja     4303 <foo+0x9d3>
ucomiss 0x13bc(%rip),%xmm0
ja     4324 <foo+0x9f4>
movss  0x13b2(%rip),%xmm1
ucomiss %xmm0,%xmm1
ja     4324 <foo+0x9f4>
ucomiss 0x13a6(%rip),%xmm0
ja     4342 <foo+0xa12>
movss  0x139c(%rip),%xmm1
ucomiss %xmm0,%xmm1
ja     4342 <foo+0xa12>
ucomiss 0x1390(%rip),%xmm0
ja     435a <foo+0xa2a>
movss  0x1386(%rip),%xmm1
ucomiss %xmm0,%xmm1
ja     435a <foo+0xa2a>
ucomiss 0x134a(%rip),%xmm0
ja     437b <foo+0xa4b>
ucomiss 0x1345(%rip),%xmm0
ja     4399 <foo+0xa69>
ucomiss 0x1340(%rip),%xmm0
ja     43b1 <foo+0xa81>
movsd  0x28(%rsp),%xmm0
movaps %xmm0,%xmm1
call   3560 <fdim@plt>
movss  0x24(%rsp),%xmm0
movaps %xmm0,%xmm1
call   31e0 <fdimf@plt>
fldt   0x30(%rsp)
fld    %st(0)
fstpt  0x10(%rsp)
fstpt  (%rsp)
call   31a0 <fdiml@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
movaps %xmm0,%xmm1
call   3550 <hypot@plt>
movss  0x24(%rsp),%xmm0
movaps %xmm0,%xmm1
call   31b0 <hypotf@plt>
fldt   0x30(%rsp)
fld    %st(0)
fstpt  0x10(%rsp)
fstpt  (%rsp)
call   3200 <hypotl@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
call   3440 <ilogb@plt>
movss  0x24(%rsp),%xmm0
call   3140 <ilogbf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3100 <ilogbl@plt>
movsd  0x28(%rsp),%xmm0
call   3620 <lgamma@plt>
movss  0x24(%rsp),%xmm0
call   3630 <lgammaf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   35f0 <lgammal@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
call   30b0 <llrint@plt>
movss  0x24(%rsp),%xmm0
call   3390 <llrintf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3600 <llrintl@plt>
movsd  0x28(%rsp),%xmm0
call   33d0 <llround@plt>
movss  0x24(%rsp),%xmm0
call   34a0 <llroundf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3490 <llroundl@plt>
xorps  %xmm0,%xmm0
movss  0x24(%rsp),%xmm1
ucomiss %xmm1,%xmm0
jae    412c <foo+0x7fc>
movss  0x1202(%rip),%xmm0
ucomiss %xmm1,%xmm0
jae    417f <foo+0x84f>
xorps  %xmm0,%xmm0
ucomiss %xmm1,%xmm0
jae    41ae <foo+0x87e>
movsd  0x28(%rsp),%xmm0
call   3470 <lrint@plt>
movss  0x24(%rsp),%xmm0
call   30f0 <lrintf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   30c0 <lrintl@plt>
movsd  0x28(%rsp),%xmm0
call   3120 <lround@plt>
movss  0x24(%rsp),%xmm0
call   3580 <lroundf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   34e0 <lroundl@plt>
movsd  0x28(%rsp),%xmm0
movaps %xmm0,%xmm1
call   36a0 <nextafter@plt>
movss  0x24(%rsp),%xmm0
movaps %xmm0,%xmm1
call   3760 <nextafterf@plt>
fldt   0x30(%rsp)
fld    %st(0)
fstpt  0x10(%rsp)
fstpt  (%rsp)
call   3040 <nextafterl@plt>
fstp   %st(0)
fldt   0x30(%rsp)
fstpt  (%rsp)
movsd  0x28(%rsp),%xmm0
call   3090 <nexttoward@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
movss  0x24(%rsp),%xmm0
call   33f0 <nexttowardf@plt>
fldt   0x30(%rsp)
fld    %st(0)
fstpt  0x10(%rsp)
fstpt  (%rsp)
call   3300 <nexttowardl@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
movaps %xmm0,%xmm1
call   3510 <remainder@plt>
movss  0x24(%rsp),%xmm0
movaps %xmm0,%xmm1
call   3680 <remainderf@plt>
fldt   0x30(%rsp)
fld    %st(0)
fstpt  0x10(%rsp)
fstpt  (%rsp)
call   3650 <remainderl@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
movaps %xmm0,%xmm1
mov    %r14,%rdi
call   36b0 <remquo@plt>
movss  0x24(%rsp),%xmm0
movaps %xmm0,%xmm1
mov    %r14,%rdi
call   3690 <remquof@plt>
fldt   0x30(%rsp)
fld    %st(0)
fstpt  0x10(%rsp)
fstpt  (%rsp)
mov    %r14,%rdi
call   3670 <remquol@plt>
fstp   %st(0)
cvttss2si 0x24(%rsp),%rbx
movsd  0x28(%rsp),%xmm0
mov    %rbx,%rdi
call   33e0 <scalbln@plt>
movss  0x24(%rsp),%xmm0
mov    %rbx,%rdi
call   36f0 <scalblnf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
mov    %rbx,%rdi
call   3790 <scalblnl@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
mov    %r15d,%edi
call   3520 <scalbn@plt>
movss  0x24(%rsp),%xmm0
mov    %r15d,%edi
call   3060 <scalbnf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
mov    %r15d,%edi
call   3840 <scalbnl@plt>
fstp   %st(0)
cmpb   $0x0,0x3b(%rsp)
jne    41fb <foo+0x8cb>
test   %r12b,%r12b
jne    4228 <foo+0x8f8>
test   %r13b,%r13b
jne    423c <foo+0x90c>
test   %bpl,%bpl
movss  0x24(%rsp),%xmm1
jne    424c <foo+0x91c>
xorps  %xmm0,%xmm0
ucomiss %xmm1,%xmm0
ja     4265 <foo+0x935>
movsd  0x28(%rsp),%xmm0
call   3640 <tan@plt>
movss  0x24(%rsp),%xmm0
call   3210 <tanf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   32a0 <tanl@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
call   3220 <tanh@plt>
movss  0x24(%rsp),%xmm0
call   3030 <tanhf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3050 <tanhl@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
call   3080 <tgamma@plt>
movss  0x24(%rsp),%xmm0
call   35b0 <tgammaf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3530 <tgammal@plt>
fstp   %st(0)
add    $0x48,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
movsd  0x28(%rsp),%xmm0
call   3380 <acos@plt>
movss  0x24(%rsp),%xmm0
call   3360 <acosf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3310 <acosl@plt>
fstp   %st(0)
movss  0x24(%rsp),%xmm1
jmp    3ab7 <foo+0x187>
movsd  0x28(%rsp),%xmm0
call   3350 <acosh@plt>
movss  0x24(%rsp),%xmm0
call   3710 <acoshf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3720 <acoshl@plt>
fstp   %st(0)
test   %bl,%bl
je     3ad0 <foo+0x1a0>
movsd  0x28(%rsp),%xmm0
call   3500 <asin@plt>
movss  0x24(%rsp),%xmm0
call   37e0 <asinf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   37b0 <asinl@plt>
fstp   %st(0)
jmp    3ad0 <foo+0x1a0>
movsd  0x28(%rsp),%xmm0
call   36c0 <cos@plt>
movss  0x24(%rsp),%xmm0
call   3280 <cosf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   32c0 <cosl@plt>
fstp   %st(0)
movss  0x24(%rsp),%xmm0
jmp    3b63 <foo+0x233>
movsd  0x28(%rsp),%xmm0
call   3290 <cosh@plt>
movss  0x24(%rsp),%xmm0
jmp    3b89 <foo+0x259>
call   3240 <coshf@plt>
movss  0x24(%rsp),%xmm0
jmp    3baf <foo+0x27f>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   31c0 <coshl@plt>
fstp   %st(0)
jmp    3bd5 <foo+0x2a5>
movsd  0x28(%rsp),%xmm0
call   3700 <log@plt>
movss  0x24(%rsp),%xmm0
call   3150 <logf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   31f0 <logl@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
call   3780 <log10@plt>
movss  0x24(%rsp),%xmm0
call   3740 <log10f@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   37f0 <log10l@plt>
fstp   %st(0)
movss  0x24(%rsp),%xmm1
jmp    3dfa <foo+0x4ca>
movsd  0x28(%rsp),%xmm0
call   3830 <log1p@plt>
movss  0x24(%rsp),%xmm0
call   3180 <log1pf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3230 <log1pl@plt>
fstp   %st(0)
movss  0x24(%rsp),%xmm1
jmp    3e0b <foo+0x4db>
movsd  0x28(%rsp),%xmm0
call   3110 <log2@plt>
movss  0x24(%rsp),%xmm0
call   34f0 <log2f@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   34c0 <log2l@plt>
fstp   %st(0)
movsd  0x28(%rsp),%xmm0
call   3130 <logb@plt>
movss  0x24(%rsp),%xmm0
call   34b0 <logbf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3480 <logbl@plt>
fstp   %st(0)
jmp    3e17 <foo+0x4e7>
movsd  0x28(%rsp),%xmm0
call   3460 <sin@plt>
movss  0x24(%rsp),%xmm0
call   30d0 <sinf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3070 <sinl@plt>
fstp   %st(0)
test   %r12b,%r12b
je     3fa1 <foo+0x671>
movsd  0x28(%rsp),%xmm0
call   30e0 <sinh@plt>
test   %r13b,%r13b
je     3faa <foo+0x67a>
movss  0x24(%rsp),%xmm0
call   3850 <sinhf@plt>
jmp    3faa <foo+0x67a>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   33a0 <sinhl@plt>
fstp   %st(0)
movss  0x24(%rsp),%xmm1
jmp    3fb9 <foo+0x689>
ucomiss %xmm0,%xmm1
movaps %xmm1,%xmm0
jae    4278 <foo+0x948>
call   35d0 <sqrtf@plt>
movss  0x24(%rsp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jae    428b <foo+0x95b>
movss  0x24(%rsp),%xmm0
call   35d0 <sqrtf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3570 <sqrtl@plt>
fstp   %st(0)
jmp    3fc5 <foo+0x695>
movsd  0x28(%rsp),%xmm0
call   3270 <atanh@plt>
movss  0x24(%rsp),%xmm0
call   35c0 <atanhf@plt>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   35e0 <atanhl@plt>
fstp   %st(0)
movss  0x24(%rsp),%xmm0
jmp    3b3c <foo+0x20c>
movsd  0x28(%rsp),%xmm0
call   35a0 <exp@plt>
movss  0x24(%rsp),%xmm0
ucomiss 0xd4b(%rip),%xmm0
jbe    3c4e <foo+0x31e>
call   3370 <expf@plt>
movss  0x24(%rsp),%xmm0
ucomiss 0xd3b(%rip),%xmm0
jbe    3c6c <foo+0x33c>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3400 <expl@plt>
fstp   %st(0)
movss  0x24(%rsp),%xmm0
ucomiss 0xd22(%rip),%xmm0
jbe    3c8a <foo+0x35a>
movsd  0x28(%rsp),%xmm0
call   3320 <exp2@plt>
movss  0x24(%rsp),%xmm0
ucomiss 0xd0c(%rip),%xmm0
jbe    3ca8 <foo+0x378>
call   33b0 <exp2f@plt>
movss  0x24(%rsp),%xmm0
ucomiss 0xcfc(%rip),%xmm0
jbe    3cc6 <foo+0x396>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   33c0 <exp2l@plt>
fstp   %st(0)
movss  0x24(%rsp),%xmm0
ucomiss 0xcb3(%rip),%xmm0
jbe    3ce4 <foo+0x3b4>
movsd  0x28(%rsp),%xmm0
call   3750 <expm1@plt>
movss  0x24(%rsp),%xmm0
ucomiss 0xc9d(%rip),%xmm0
jbe    3cf1 <foo+0x3c1>
call   3660 <expm1f@plt>
movss  0x24(%rsp),%xmm0
ucomiss 0xc8d(%rip),%xmm0
jbe    3cfe <foo+0x3ce>
fldt   0x30(%rsp)
fstpt  (%rsp)
call   3610 <expm1l@plt>
fstp   %st(0)
jmp    3cfe <foo+0x3ce>

LLVM IR (-O0):
define void @foo(double* %0, float %1, float* %2, x86_fp80* %3, i32* %4, i8* %5) {
%7 = alloca double*
%8 = alloca float
%9 = alloca float*
%10 = alloca x86_fp80*
%11 = alloca i32*
%12 = alloca i8*
store double* %0, double** %7
store float %1, float* %8
store float* %2, float** %9
store x86_fp80* %3, x86_fp80** %10
store i32* %4, i32** %11
store i8* %5, i8** %12
%13 = load float, float* %8
%14 = fpext float %13 to double
%15 = load float, float* %8
%16 = fpext float %15 to double
%17 = call double @fmod(double %14, double %16)
%18 = fptrunc double %17 to float
store float %18, float* %8
%19 = load float, float* %8
%20 = load float, float* %8
%21 = call float @fmodf(float %19, float %20)
store float %21, float* %8
%22 = load float, float* %8
%23 = fpext float %22 to x86_fp80
%24 = load float, float* %8
%25 = fpext float %24 to x86_fp80
%26 = call x86_fp80 @fmodl(x86_fp80 %23, x86_fp80 %25)
%27 = fptrunc x86_fp80 %26 to float
store float %27, float* %8
%28 = load float, float* %8
%29 = fpext float %28 to double
%30 = load float, float* %8
%31 = fpext float %30 to double
%32 = call double @atan2(double %29, double %31)
%33 = load float, float* %8
%34 = load float, float* %8
%35 = call float @atan2f(float %33, float %34)
%36 = load float, float* %8
%37 = fpext float %36 to x86_fp80
%38 = load float, float* %8
%39 = fpext float %38 to x86_fp80
%40 = call x86_fp80 @atan2l(x86_fp80 %37, x86_fp80 %39)
%41 = load float, float* %8
%42 = fpext float %41 to double
%43 = load float, float* %8
%44 = fpext float %43 to double
%45 = call double @llvm.copysign.f64(double %42, double %44)
%46 = load float, float* %8
%47 = load float, float* %8
%48 = call float @llvm.copysign.f32(float %46, float %47)
%49 = load float, float* %8
%50 = fpext float %49 to x86_fp80
%51 = load float, float* %8
%52 = fpext float %51 to x86_fp80
%53 = call x86_fp80 @llvm.copysign.f80(x86_fp80 %50, x86_fp80 %52)
%54 = load float, float* %8
%55 = fpext float %54 to fp128
%56 = load float, float* %8
%57 = fpext float %56 to fp128
%58 = call fp128 @llvm.copysign.f128(fp128 %55, fp128 %57)
%59 = load float, float* %8
%60 = fpext float %59 to double
%61 = call double @llvm.fabs.f64(double %60)
%62 = load float, float* %8
%63 = call float @llvm.fabs.f32(float %62)
%64 = load float, float* %8
%65 = fpext float %64 to x86_fp80
%66 = call x86_fp80 @llvm.fabs.f80(x86_fp80 %65)
%67 = load float, float* %8
%68 = fpext float %67 to fp128
%69 = call fp128 @llvm.fabs.f128(fp128 %68)
%70 = load float, float* %8
%71 = fpext float %70 to double
%72 = load i32*, i32** %11
%73 = call double @frexp(double %71, i32* %72)
%74 = load float, float* %8
%75 = load i32*, i32** %11
%76 = call float @frexpf(float %74, i32* %75)
%77 = load float, float* %8
%78 = fpext float %77 to x86_fp80
%79 = load i32*, i32** %11
%80 = call x86_fp80 @frexpl(x86_fp80 %78, i32* %79)
%81 = load float, float* %8
%82 = fpext float %81 to double
%83 = load float, float* %8
%84 = fptosi float %83 to i32
%85 = call double @ldexp(double %82, i32 %84)
%86 = load float, float* %8
%87 = load float, float* %8
%88 = fptosi float %87 to i32
%89 = call float @ldexpf(float %86, i32 %88)
%90 = load float, float* %8
%91 = fpext float %90 to x86_fp80
%92 = load float, float* %8
%93 = fptosi float %92 to i32
%94 = call x86_fp80 @ldexpl(x86_fp80 %91, i32 %93)
%95 = load float, float* %8
%96 = fpext float %95 to double
%97 = load double*, double** %7
%98 = call double @modf(double %96, double* %97)
%99 = load float, float* %8
%100 = load float*, float** %9
%101 = call float @modff(float %99, float* %100)
%102 = load float, float* %8
%103 = fpext float %102 to x86_fp80
%104 = load x86_fp80*, x86_fp80** %10
%105 = call x86_fp80 @modfl(x86_fp80 %103, x86_fp80* %104)
%106 = load i8*, i8** %12
%107 = call double @nan(i8* %106)
%108 = load i8*, i8** %12
%109 = call float @nanf(i8* %108)
%110 = load i8*, i8** %12
%111 = call x86_fp80 @nanl(i8* %110)
%112 = load i8*, i8** %12
%113 = call fp128 @nanf128(i8* %112)
%114 = load i8*, i8** %12
%115 = call double @nans(i8* %114)
%116 = load i8*, i8** %12
%117 = call float @nansf(i8* %116)
%118 = load i8*, i8** %12
%119 = call x86_fp80 @nansl(i8* %118)
%120 = load i8*, i8** %12
%121 = call fp128 @nansf128(i8* %120)
%122 = load float, float* %8
%123 = fpext float %122 to double
%124 = load float, float* %8
%125 = fpext float %124 to double
%126 = call double @pow(double %123, double %125)
%127 = load float, float* %8
%128 = load float, float* %8
%129 = call float @powf(float %127, float %128)
%130 = load float, float* %8
%131 = fpext float %130 to x86_fp80
%132 = load float, float* %8
%133 = fpext float %132 to x86_fp80
%134 = call x86_fp80 @powl(x86_fp80 %131, x86_fp80 %133)
%135 = load float, float* %8
%136 = fpext float %135 to double
%137 = load float, float* %8
%138 = fptosi float %137 to i32
%139 = call double @llvm.powi.f64.i32(double %136, i32 %138)
%140 = load float, float* %8
%141 = load float, float* %8
%142 = fptosi float %141 to i32
%143 = call float @llvm.powi.f32.i32(float %140, i32 %142)
%144 = load float, float* %8
%145 = fpext float %144 to x86_fp80
%146 = load float, float* %8
%147 = fptosi float %146 to i32
%148 = call x86_fp80 @llvm.powi.f80.i32(x86_fp80 %145, i32 %147)
%149 = load float, float* %8
%150 = fpext float %149 to double
%151 = call double @acos(double %150)
%152 = load float, float* %8
%153 = call float @acosf(float %152)
%154 = load float, float* %8
%155 = fpext float %154 to x86_fp80
%156 = call x86_fp80 @acosl(x86_fp80 %155)
%157 = load float, float* %8
%158 = fpext float %157 to double
%159 = call double @acosh(double %158)
%160 = load float, float* %8
%161 = call float @acoshf(float %160)
%162 = load float, float* %8
%163 = fpext float %162 to x86_fp80
%164 = call x86_fp80 @acoshl(x86_fp80 %163)
%165 = load float, float* %8
%166 = fpext float %165 to double
%167 = call double @asin(double %166)
%168 = load float, float* %8
%169 = call float @asinf(float %168)
%170 = load float, float* %8
%171 = fpext float %170 to x86_fp80
%172 = call x86_fp80 @asinl(x86_fp80 %171)
%173 = load float, float* %8
%174 = fpext float %173 to double
%175 = call double @asinh(double %174)
%176 = load float, float* %8
%177 = call float @asinhf(float %176)
%178 = load float, float* %8
%179 = fpext float %178 to x86_fp80
%180 = call x86_fp80 @asinhl(x86_fp80 %179)
%181 = load float, float* %8
%182 = fpext float %181 to double
%183 = call double @atan(double %182)
%184 = load float, float* %8
%185 = call float @atanf(float %184)
%186 = load float, float* %8
%187 = fpext float %186 to x86_fp80
%188 = call x86_fp80 @atanl(x86_fp80 %187)
%189 = load float, float* %8
%190 = fpext float %189 to double
%191 = call double @atanh(double %190)
%192 = load float, float* %8
%193 = call float @atanhf(float %192)
%194 = load float, float* %8
%195 = fpext float %194 to x86_fp80
%196 = call x86_fp80 @atanhl(x86_fp80 %195)
%197 = load float, float* %8
%198 = fpext float %197 to double
%199 = call double @cbrt(double %198)
%200 = load float, float* %8
%201 = call float @cbrtf(float %200)
%202 = load float, float* %8
%203 = fpext float %202 to x86_fp80
%204 = call x86_fp80 @cbrtl(x86_fp80 %203)
%205 = load float, float* %8
%206 = fpext float %205 to double
%207 = call double @llvm.ceil.f64(double %206)
%208 = load float, float* %8
%209 = call float @llvm.ceil.f32(float %208)
%210 = load float, float* %8
%211 = fpext float %210 to x86_fp80
%212 = call x86_fp80 @llvm.ceil.f80(x86_fp80 %211)
%213 = load float, float* %8
%214 = fpext float %213 to double
%215 = call double @cos(double %214)
%216 = load float, float* %8
%217 = call float @cosf(float %216)
%218 = load float, float* %8
%219 = fpext float %218 to x86_fp80
%220 = call x86_fp80 @cosl(x86_fp80 %219)
%221 = load float, float* %8
%222 = fpext float %221 to double
%223 = call double @cosh(double %222)
%224 = load float, float* %8
%225 = call float @coshf(float %224)
%226 = load float, float* %8
%227 = fpext float %226 to x86_fp80
%228 = call x86_fp80 @coshl(x86_fp80 %227)
%229 = load float, float* %8
%230 = fpext float %229 to double
%231 = call double @erf(double %230)
%232 = load float, float* %8
%233 = call float @erff(float %232)
%234 = load float, float* %8
%235 = fpext float %234 to x86_fp80
%236 = call x86_fp80 @erfl(x86_fp80 %235)
%237 = load float, float* %8
%238 = fpext float %237 to double
%239 = call double @erfc(double %238)
%240 = load float, float* %8
%241 = call float @erfcf(float %240)
%242 = load float, float* %8
%243 = fpext float %242 to x86_fp80
%244 = call x86_fp80 @erfcl(x86_fp80 %243)
%245 = load float, float* %8
%246 = fpext float %245 to double
%247 = call double @exp(double %246)
%248 = load float, float* %8
%249 = call float @expf(float %248)
%250 = load float, float* %8
%251 = fpext float %250 to x86_fp80
%252 = call x86_fp80 @expl(x86_fp80 %251)
%253 = load float, float* %8
%254 = fpext float %253 to double
%255 = call double @exp2(double %254)
%256 = load float, float* %8
%257 = call float @exp2f(float %256)
%258 = load float, float* %8
%259 = fpext float %258 to x86_fp80
%260 = call x86_fp80 @exp2l(x86_fp80 %259)
%261 = load float, float* %8
%262 = fpext float %261 to double
%263 = call double @expm1(double %262)
%264 = load float, float* %8
%265 = call float @expm1f(float %264)
%266 = load float, float* %8
%267 = fpext float %266 to x86_fp80
%268 = call x86_fp80 @expm1l(x86_fp80 %267)
%269 = load float, float* %8
%270 = fpext float %269 to double
%271 = load float, float* %8
%272 = fpext float %271 to double
%273 = call double @fdim(double %270, double %272)
%274 = load float, float* %8
%275 = load float, float* %8
%276 = call float @fdimf(float %274, float %275)
%277 = load float, float* %8
%278 = fpext float %277 to x86_fp80
%279 = load float, float* %8
%280 = fpext float %279 to x86_fp80
%281 = call x86_fp80 @fdiml(x86_fp80 %278, x86_fp80 %280)
%282 = load float, float* %8
%283 = fpext float %282 to double
%284 = call double @llvm.floor.f64(double %283)
%285 = load float, float* %8
%286 = call float @llvm.floor.f32(float %285)
%287 = load float, float* %8
%288 = fpext float %287 to x86_fp80
%289 = call x86_fp80 @llvm.floor.f80(x86_fp80 %288)
%290 = load float, float* %8
%291 = fpext float %290 to double
%292 = load float, float* %8
%293 = fpext float %292 to double
%294 = load float, float* %8
%295 = fpext float %294 to double
%296 = call double @llvm.fma.f64(double %291, double %293, double %295)
%297 = load float, float* %8
%298 = load float, float* %8
%299 = load float, float* %8
%300 = call float @llvm.fma.f32(float %297, float %298, float %299)
%301 = load float, float* %8
%302 = fpext float %301 to x86_fp80
%303 = load float, float* %8
%304 = fpext float %303 to x86_fp80
%305 = load float, float* %8
%306 = fpext float %305 to x86_fp80
%307 = call x86_fp80 @llvm.fma.f80(x86_fp80 %302, x86_fp80 %304, x86_fp80 %306)
%308 = load float, float* %8
%309 = fpext float %308 to double
%310 = load float, float* %8
%311 = fpext float %310 to double
%312 = call double @llvm.maxnum.f64(double %309, double %311)
%313 = load float, float* %8
%314 = load float, float* %8
%315 = call float @llvm.maxnum.f32(float %313, float %314)
%316 = load float, float* %8
%317 = fpext float %316 to x86_fp80
%318 = load float, float* %8
%319 = fpext float %318 to x86_fp80
%320 = call x86_fp80 @llvm.maxnum.f80(x86_fp80 %317, x86_fp80 %319)
%321 = load float, float* %8
%322 = fpext float %321 to double
%323 = load float, float* %8
%324 = fpext float %323 to double
%325 = call double @llvm.minnum.f64(double %322, double %324)
%326 = load float, float* %8
%327 = load float, float* %8
%328 = call float @llvm.minnum.f32(float %326, float %327)
%329 = load float, float* %8
%330 = fpext float %329 to x86_fp80
%331 = load float, float* %8
%332 = fpext float %331 to x86_fp80
%333 = call x86_fp80 @llvm.minnum.f80(x86_fp80 %330, x86_fp80 %332)
%334 = load float, float* %8
%335 = fpext float %334 to double
%336 = load float, float* %8
%337 = fpext float %336 to double
%338 = call double @hypot(double %335, double %337)
%339 = load float, float* %8
%340 = load float, float* %8
%341 = call float @hypotf(float %339, float %340)
%342 = load float, float* %8
%343 = fpext float %342 to x86_fp80
%344 = load float, float* %8
%345 = fpext float %344 to x86_fp80
%346 = call x86_fp80 @hypotl(x86_fp80 %343, x86_fp80 %345)
%347 = load float, float* %8
%348 = fpext float %347 to double
%349 = call i32 @ilogb(double %348)
%350 = load float, float* %8
%351 = call i32 @ilogbf(float %350)
%352 = load float, float* %8
%353 = fpext float %352 to x86_fp80
%354 = call i32 @ilogbl(x86_fp80 %353)
%355 = load float, float* %8
%356 = fpext float %355 to double
%357 = call double @lgamma(double %356)
%358 = load float, float* %8
%359 = call float @lgammaf(float %358)
%360 = load float, float* %8
%361 = fpext float %360 to x86_fp80
%362 = call x86_fp80 @lgammal(x86_fp80 %361)
%363 = load float, float* %8
%364 = fpext float %363 to double
%365 = call i64 @llrint(double %364)
%366 = load float, float* %8
%367 = call i64 @llrintf(float %366)
%368 = load float, float* %8
%369 = fpext float %368 to x86_fp80
%370 = call i64 @llrintl(x86_fp80 %369)
%371 = load float, float* %8
%372 = fpext float %371 to double
%373 = call i64 @llround(double %372)
%374 = load float, float* %8
%375 = call i64 @llroundf(float %374)
%376 = load float, float* %8
%377 = fpext float %376 to x86_fp80
%378 = call i64 @llroundl(x86_fp80 %377)
%379 = load float, float* %8
%380 = fpext float %379 to double
%381 = call double @log(double %380)
%382 = load float, float* %8
%383 = call float @logf(float %382)
%384 = load float, float* %8
%385 = fpext float %384 to x86_fp80
%386 = call x86_fp80 @logl(x86_fp80 %385)
%387 = load float, float* %8
%388 = fpext float %387 to double
%389 = call double @log10(double %388)
%390 = load float, float* %8
%391 = call float @log10f(float %390)
%392 = load float, float* %8
%393 = fpext float %392 to x86_fp80
%394 = call x86_fp80 @log10l(x86_fp80 %393)
%395 = load float, float* %8
%396 = fpext float %395 to double
%397 = call double @log1p(double %396)
%398 = load float, float* %8
%399 = call float @log1pf(float %398)
%400 = load float, float* %8
%401 = fpext float %400 to x86_fp80
%402 = call x86_fp80 @log1pl(x86_fp80 %401)
%403 = load float, float* %8
%404 = fpext float %403 to double
%405 = call double @log2(double %404)
%406 = load float, float* %8
%407 = call float @log2f(float %406)
%408 = load float, float* %8
%409 = fpext float %408 to x86_fp80
%410 = call x86_fp80 @log2l(x86_fp80 %409)
%411 = load float, float* %8
%412 = fpext float %411 to double
%413 = call double @logb(double %412)
%414 = load float, float* %8
%415 = call float @logbf(float %414)
%416 = load float, float* %8
%417 = fpext float %416 to x86_fp80
%418 = call x86_fp80 @logbl(x86_fp80 %417)
%419 = load float, float* %8
%420 = fpext float %419 to double
%421 = call i64 @lrint(double %420)
%422 = load float, float* %8
%423 = call i64 @lrintf(float %422)
%424 = load float, float* %8
%425 = fpext float %424 to x86_fp80
%426 = call i64 @lrintl(x86_fp80 %425)
%427 = load float, float* %8
%428 = fpext float %427 to double
%429 = call i64 @lround(double %428)
%430 = load float, float* %8
%431 = call i64 @lroundf(float %430)
%432 = load float, float* %8
%433 = fpext float %432 to x86_fp80
%434 = call i64 @lroundl(x86_fp80 %433)
%435 = load float, float* %8
%436 = fpext float %435 to double
%437 = call double @llvm.nearbyint.f64(double %436)
%438 = load float, float* %8
%439 = call float @llvm.nearbyint.f32(float %438)
%440 = load float, float* %8
%441 = fpext float %440 to x86_fp80
%442 = call x86_fp80 @llvm.nearbyint.f80(x86_fp80 %441)
%443 = load float, float* %8
%444 = fpext float %443 to double
%445 = load float, float* %8
%446 = fpext float %445 to double
%447 = call double @nextafter(double %444, double %446)
%448 = load float, float* %8
%449 = load float, float* %8
%450 = call float @nextafterf(float %448, float %449)
%451 = load float, float* %8
%452 = fpext float %451 to x86_fp80
%453 = load float, float* %8
%454 = fpext float %453 to x86_fp80
%455 = call x86_fp80 @nextafterl(x86_fp80 %452, x86_fp80 %454)
%456 = load float, float* %8
%457 = fpext float %456 to double
%458 = load float, float* %8
%459 = fpext float %458 to x86_fp80
%460 = call double @nexttoward(double %457, x86_fp80 %459)
%461 = load float, float* %8
%462 = load float, float* %8
%463 = fpext float %462 to x86_fp80
%464 = call float @nexttowardf(float %461, x86_fp80 %463)
%465 = load float, float* %8
%466 = fpext float %465 to x86_fp80
%467 = load float, float* %8
%468 = fpext float %467 to x86_fp80
%469 = call x86_fp80 @nexttowardl(x86_fp80 %466, x86_fp80 %468)
%470 = load float, float* %8
%471 = fpext float %470 to double
%472 = load float, float* %8
%473 = fpext float %472 to double
%474 = call double @remainder(double %471, double %473)
%475 = load float, float* %8
%476 = load float, float* %8
%477 = call float @remainderf(float %475, float %476)
%478 = load float, float* %8
%479 = fpext float %478 to x86_fp80
%480 = load float, float* %8
%481 = fpext float %480 to x86_fp80
%482 = call x86_fp80 @remainderl(x86_fp80 %479, x86_fp80 %481)
%483 = load float, float* %8
%484 = fpext float %483 to double
%485 = load float, float* %8
%486 = fpext float %485 to double
%487 = load i32*, i32** %11
%488 = call double @remquo(double %484, double %486, i32* %487)
%489 = load float, float* %8
%490 = load float, float* %8
%491 = load i32*, i32** %11
%492 = call float @remquof(float %489, float %490, i32* %491)
%493 = load float, float* %8
%494 = fpext float %493 to x86_fp80
%495 = load float, float* %8
%496 = fpext float %495 to x86_fp80
%497 = load i32*, i32** %11
%498 = call x86_fp80 @remquol(x86_fp80 %494, x86_fp80 %496, i32* %497)
%499 = load float, float* %8
%500 = fpext float %499 to double
%501 = call double @llvm.rint.f64(double %500)
%502 = load float, float* %8
%503 = call float @llvm.rint.f32(float %502)
%504 = load float, float* %8
%505 = fpext float %504 to x86_fp80
%506 = call x86_fp80 @llvm.rint.f80(x86_fp80 %505)
%507 = load float, float* %8
%508 = fpext float %507 to double
%509 = call double @llvm.round.f64(double %508)
%510 = load float, float* %8
%511 = call float @llvm.round.f32(float %510)
%512 = load float, float* %8
%513 = fpext float %512 to x86_fp80
%514 = call x86_fp80 @llvm.round.f80(x86_fp80 %513)
%515 = load float, float* %8
%516 = fpext float %515 to double
%517 = load float, float* %8
%518 = fptosi float %517 to i64
%519 = call double @scalbln(double %516, i64 %518)
%520 = load float, float* %8
%521 = load float, float* %8
%522 = fptosi float %521 to i64
%523 = call float @scalblnf(float %520, i64 %522)
%524 = load float, float* %8
%525 = fpext float %524 to x86_fp80
%526 = load float, float* %8
%527 = fptosi float %526 to i64
%528 = call x86_fp80 @scalblnl(x86_fp80 %525, i64 %527)
%529 = load float, float* %8
%530 = fpext float %529 to double
%531 = load float, float* %8
%532 = fptosi float %531 to i32
%533 = call double @scalbn(double %530, i32 %532)
%534 = load float, float* %8
%535 = load float, float* %8
%536 = fptosi float %535 to i32
%537 = call float @scalbnf(float %534, i32 %536)
%538 = load float, float* %8
%539 = fpext float %538 to x86_fp80
%540 = load float, float* %8
%541 = fptosi float %540 to i32
%542 = call x86_fp80 @scalbnl(x86_fp80 %539, i32 %541)
%543 = load float, float* %8
%544 = fpext float %543 to double
%545 = call double @sin(double %544)
%546 = load float, float* %8
%547 = call float @sinf(float %546)
%548 = load float, float* %8
%549 = fpext float %548 to x86_fp80
%550 = call x86_fp80 @sinl(x86_fp80 %549)
%551 = load float, float* %8
%552 = fpext float %551 to double
%553 = call double @sinh(double %552)
%554 = load float, float* %8
%555 = call float @sinhf(float %554)
%556 = load float, float* %8
%557 = fpext float %556 to x86_fp80
%558 = call x86_fp80 @sinhl(x86_fp80 %557)
%559 = load float, float* %8
%560 = fpext float %559 to double
%561 = call double @sqrt(double %560)
%562 = load float, float* %8
%563 = call float @sqrtf(float %562)
%564 = load float, float* %8
%565 = fpext float %564 to x86_fp80
%566 = call x86_fp80 @sqrtl(x86_fp80 %565)
%567 = load float, float* %8
%568 = fpext float %567 to double
%569 = call double @tan(double %568)
%570 = load float, float* %8
%571 = call float @tanf(float %570)
%572 = load float, float* %8
%573 = fpext float %572 to x86_fp80
%574 = call x86_fp80 @tanl(x86_fp80 %573)
%575 = load float, float* %8
%576 = fpext float %575 to double
%577 = call double @tanh(double %576)
%578 = load float, float* %8
%579 = call float @tanhf(float %578)
%580 = load float, float* %8
%581 = fpext float %580 to x86_fp80
%582 = call x86_fp80 @tanhl(x86_fp80 %581)
%583 = load float, float* %8
%584 = fpext float %583 to double
%585 = call double @tgamma(double %584)
%586 = load float, float* %8
%587 = call float @tgammaf(float %586)
%588 = load float, float* %8
%589 = fpext float %588 to x86_fp80
%590 = call x86_fp80 @tgammal(x86_fp80 %589)
%591 = load float, float* %8
%592 = fpext float %591 to double
%593 = call double @llvm.trunc.f64(double %592)
%594 = load float, float* %8
%595 = call float @llvm.trunc.f32(float %594)
%596 = load float, float* %8
%597 = fpext float %596 to x86_fp80
%598 = call x86_fp80 @llvm.trunc.f80(x86_fp80 %597)
ret void
}

LLVM IR (-O2):
define void @foo(double* nocapture %0, float %1, float* nocapture %2, x86_fp80* nocapture %3, i32* %4, i8* nocapture readnone %5) {
%7 = fpext float %1 to double
%8 = tail call double @fmod(double %7, double %7)
%9 = fptrunc double %8 to float
%10 = tail call float @fmodf(float %9, float %9)
%11 = fpext float %10 to x86_fp80
%12 = tail call x86_fp80 @fmodl(x86_fp80 %11, x86_fp80 %11)
%13 = fptrunc x86_fp80 %12 to float
%14 = fpext float %13 to double
%15 = tail call double @atan2(double %14, double %14)
%16 = tail call float @atan2f(float %13, float %13)
%17 = fpext float %13 to x86_fp80
%18 = tail call x86_fp80 @atan2l(x86_fp80 %17, x86_fp80 %17)
%19 = tail call double @frexp(double %14, i32* %4)
%20 = tail call float @frexpf(float %13, i32* %4)
%21 = tail call x86_fp80 @frexpl(x86_fp80 %17, i32* %4)
%22 = fptosi float %13 to i32
%23 = tail call double @ldexp(double %14, i32 %22)
%24 = tail call float @ldexpf(float %13, i32 %22)
%25 = tail call x86_fp80 @ldexpl(x86_fp80 %17, i32 %22)
%26 = tail call double @modf(double %14, double* %0)
%27 = tail call float @modff(float %13, float* %2)
%28 = tail call x86_fp80 @modfl(x86_fp80 %17, x86_fp80* %3)
%29 = tail call double @pow(double %14, double %14)
%30 = tail call float @powf(float %13, float %13)
%31 = tail call x86_fp80 @powl(x86_fp80 %17, x86_fp80 %17)
%32 = fcmp ogt float %13, 1.000000e+00
%33 = fcmp olt float %13, -1.000000e+00
%34 = or i1 %33, %32
br i1 %34, label %35, label %39
35: ; preds = %6
%36 = tail call double @acos(double %14)
%37 = tail call float @acosf(float %13)
%38 = tail call x86_fp80 @acosl(x86_fp80 %17)
br label %39
39: ; preds = %6, %35
%40 = fcmp olt float %13, 1.000000e+00
br i1 %40, label %41, label %45
41: ; preds = %39
%42 = tail call double @acosh(double %14)
%43 = tail call float @acoshf(float %13)
%44 = tail call x86_fp80 @acoshl(x86_fp80 %17)
br label %45
45: ; preds = %39, %41
br i1 %34, label %46, label %50
46: ; preds = %45
%47 = tail call double @asin(double %14)
%48 = tail call float @asinf(float %13)
%49 = tail call x86_fp80 @asinl(x86_fp80 %17)
br label %50
50: ; preds = %45, %46
%51 = tail call double @asinh(double %14)
%52 = tail call float @asinhf(float %13)
%53 = tail call x86_fp80 @asinhl(x86_fp80 %17)
%54 = tail call double @atan(double %14)
%55 = tail call float @atanf(float %13)
%56 = tail call x86_fp80 @atanl(x86_fp80 %17)
%57 = fcmp oge float %13, 1.000000e+00
%58 = fcmp ole float %13, -1.000000e+00
%59 = or i1 %58, %57
br i1 %59, label %60, label %64
60: ; preds = %50
%61 = tail call double @atanh(double %14)
%62 = tail call float @atanhf(float %13)
%63 = tail call x86_fp80 @atanhl(x86_fp80 %17)
br label %64
64: ; preds = %50, %60
%65 = fcmp oeq float %13, 0xFFF0000000000000
%66 = fcmp oeq float %13, 0x7FF0000000000000
%67 = or i1 %66, %65
br i1 %67, label %68, label %72
68: ; preds = %64
%69 = tail call double @cos(double %14)
%70 = tail call float @cosf(float %13)
%71 = tail call x86_fp80 @cosl(x86_fp80 %17)
br label %72
72: ; preds = %64, %68
%73 = fcmp olt float %13, -7.100000e+02
%74 = fcmp ogt float %13, 7.100000e+02
%75 = or i1 %74, %73
br i1 %75, label %76, label %78
76: ; preds = %72
%77 = tail call double @cosh(double %14)
br label %78
78: ; preds = %72, %76
%79 = fcmp olt float %13, -8.900000e+01
%80 = fcmp ogt float %13, 8.900000e+01
%81 = or i1 %80, %79
br i1 %81, label %82, label %84
82: ; preds = %78
%83 = tail call float @coshf(float %13)
br label %84
84: ; preds = %78, %82
%85 = fcmp olt float %13, -1.135700e+04
%86 = fcmp ogt float %13, 1.135700e+04
%87 = or i1 %86, %85
br i1 %87, label %88, label %90
88: ; preds = %84
%89 = tail call x86_fp80 @coshl(x86_fp80 %17)
br label %90
90: ; preds = %84, %88
%91 = tail call double @erf(double %14)
%92 = tail call float @erff(float %13)
%93 = tail call x86_fp80 @erfl(x86_fp80 %17)
%94 = tail call double @erfc(double %14)
%95 = tail call float @erfcf(float %13)
%96 = tail call x86_fp80 @erfcl(x86_fp80 %17)
%97 = fcmp olt float %13, -7.450000e+02
%98 = fcmp ogt float %13, 7.090000e+02
%99 = or i1 %98, %97
br i1 %99, label %100, label %102
100: ; preds = %90
%101 = tail call double @exp(double %14)
br label %102
102: ; preds = %90, %100
%103 = fcmp olt float %13, -1.030000e+02
%104 = fcmp ogt float %13, 8.800000e+01
%105 = or i1 %104, %103
br i1 %105, label %106, label %108
106: ; preds = %102
%107 = tail call float @expf(float %13)
br label %108
108: ; preds = %102, %106
%109 = fcmp olt float %13, -1.139900e+04
%110 = fcmp ogt float %13, 1.135600e+04
%111 = or i1 %110, %109
br i1 %111, label %112, label %114
112: ; preds = %108
%113 = tail call x86_fp80 @expl(x86_fp80 %17)
br label %114
114: ; preds = %108, %112
%115 = fcmp olt float %13, -1.074000e+03
%116 = fcmp ogt float %13, 1.023000e+03
%117 = or i1 %116, %115
br i1 %117, label %118, label %120
118: ; preds = %114
%119 = tail call double @exp2(double %14)
br label %120
120: ; preds = %114, %118
%121 = fcmp olt float %13, -1.490000e+02
%122 = fcmp ogt float %13, 1.270000e+02
%123 = or i1 %122, %121
br i1 %123, label %124, label %126
124: ; preds = %120
%125 = tail call float @exp2f(float %13)
br label %126
126: ; preds = %120, %124
%127 = fcmp olt float %13, -1.644500e+04
%128 = fcmp ogt float %13, 1.138300e+04
%129 = or i1 %128, %127
br i1 %129, label %130, label %132
130: ; preds = %126
%131 = tail call x86_fp80 @exp2l(x86_fp80 %17)
br label %132
132: ; preds = %126, %130
br i1 %98, label %133, label %135
133: ; preds = %132
%134 = tail call double @expm1(double %14)
br label %135
135: ; preds = %132, %133
br i1 %104, label %136, label %138
136: ; preds = %135
%137 = tail call float @expm1f(float %13)
br label %138
138: ; preds = %135, %136
br i1 %110, label %139, label %141
139: ; preds = %138
%140 = tail call x86_fp80 @expm1l(x86_fp80 %17)
br label %141
141: ; preds = %138, %139
%142 = tail call double @fdim(double %14, double %14)
%143 = tail call float @fdimf(float %13, float %13)
%144 = tail call x86_fp80 @fdiml(x86_fp80 %17, x86_fp80 %17)
%145 = tail call double @hypot(double %14, double %14)
%146 = tail call float @hypotf(float %13, float %13)
%147 = tail call x86_fp80 @hypotl(x86_fp80 %17, x86_fp80 %17)
%148 = tail call i32 @ilogb(double %14)
%149 = tail call i32 @ilogbf(float %13)
%150 = tail call i32 @ilogbl(x86_fp80 %17)
%151 = tail call double @lgamma(double %14)
%152 = tail call float @lgammaf(float %13)
%153 = tail call x86_fp80 @lgammal(x86_fp80 %17)
%154 = tail call i64 @llrint(double %14)
%155 = tail call i64 @llrintf(float %13)
%156 = tail call i64 @llrintl(x86_fp80 %17)
%157 = tail call i64 @llround(double %14)
%158 = tail call i64 @llroundf(float %13)
%159 = tail call i64 @llroundl(x86_fp80 %17)
%160 = fcmp ugt float %13, 0.000000e+00
br i1 %160, label %168, label %161
161: ; preds = %141
%162 = tail call double @log(double %14)
%163 = tail call float @logf(float %13)
%164 = tail call x86_fp80 @logl(x86_fp80 %17)
%165 = tail call double @log10(double %14)
%166 = tail call float @log10f(float %13)
%167 = tail call x86_fp80 @log10l(x86_fp80 %17)
br label %168
168: ; preds = %141, %161
%169 = fcmp ugt float %13, -1.000000e+00
br i1 %169, label %174, label %170
170: ; preds = %168
%171 = tail call double @log1p(double %14)
%172 = tail call float @log1pf(float %13)
%173 = tail call x86_fp80 @log1pl(x86_fp80 %17)
br label %174
174: ; preds = %168, %170
br i1 %160, label %182, label %175
175: ; preds = %174
%176 = tail call double @log2(double %14)
%177 = tail call float @log2f(float %13)
%178 = tail call x86_fp80 @log2l(x86_fp80 %17)
%179 = tail call double @logb(double %14)
%180 = tail call float @logbf(float %13)
%181 = tail call x86_fp80 @logbl(x86_fp80 %17)
br label %182
182: ; preds = %174, %175
%183 = tail call i64 @lrint(double %14)
%184 = tail call i64 @lrintf(float %13)
%185 = tail call i64 @lrintl(x86_fp80 %17)
%186 = tail call i64 @lround(double %14)
%187 = tail call i64 @lroundf(float %13)
%188 = tail call i64 @lroundl(x86_fp80 %17)
%189 = tail call double @nextafter(double %14, double %14)
%190 = tail call float @nextafterf(float %13, float %13)
%191 = tail call x86_fp80 @nextafterl(x86_fp80 %17, x86_fp80 %17)
%192 = tail call double @nexttoward(double %14, x86_fp80 %17)
%193 = tail call float @nexttowardf(float %13, x86_fp80 %17)
%194 = tail call x86_fp80 @nexttowardl(x86_fp80 %17, x86_fp80 %17)
%195 = tail call double @remainder(double %14, double %14)
%196 = tail call float @remainderf(float %13, float %13)
%197 = tail call x86_fp80 @remainderl(x86_fp80 %17, x86_fp80 %17)
%198 = tail call double @remquo(double %14, double %14, i32* %4)
%199 = tail call float @remquof(float %13, float %13, i32* %4)
%200 = tail call x86_fp80 @remquol(x86_fp80 %17, x86_fp80 %17, i32* %4)
%201 = fptosi float %13 to i64
%202 = tail call double @scalbln(double %14, i64 %201)
%203 = tail call float @scalblnf(float %13, i64 %201)
%204 = tail call x86_fp80 @scalblnl(x86_fp80 %17, i64 %201)
%205 = tail call double @scalbn(double %14, i32 %22)
%206 = tail call float @scalbnf(float %13, i32 %22)
%207 = tail call x86_fp80 @scalbnl(x86_fp80 %17, i32 %22)
br i1 %67, label %208, label %212
208: ; preds = %182
%209 = tail call double @sin(double %14)
%210 = tail call float @sinf(float %13)
%211 = tail call x86_fp80 @sinl(x86_fp80 %17)
br label %212
212: ; preds = %182, %208
br i1 %75, label %213, label %215
213: ; preds = %212
%214 = tail call double @sinh(double %14)
br label %215
215: ; preds = %212, %213
br i1 %81, label %216, label %218
216: ; preds = %215
%217 = tail call float @sinhf(float %13)
br label %218
218: ; preds = %215, %216
br i1 %87, label %219, label %221
219: ; preds = %218
%220 = tail call x86_fp80 @sinhl(x86_fp80 %17)
br label %221
221: ; preds = %218, %219
%222 = fcmp olt float %13, 0.000000e+00
br i1 %222, label %223, label %227
223: ; preds = %221
%224 = tail call float @sqrtf(float %13)
%225 = tail call float @sqrtf(float %13)
%226 = tail call x86_fp80 @sqrtl(x86_fp80 %17)
br label %227
227: ; preds = %221, %223
%228 = tail call double @tan(double %14)
%229 = tail call float @tanf(float %13)
%230 = tail call x86_fp80 @tanl(x86_fp80 %17)
%231 = tail call double @tanh(double %14)
%232 = tail call float @tanhf(float %13)
%233 = tail call x86_fp80 @tanhl(x86_fp80 %17)
%234 = tail call double @tgamma(double %14)
%235 = tail call float @tgammaf(float %13)
%236 = tail call x86_fp80 @tgammal(x86_fp80 %17)
ret void
}