#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
double cbrt(double);
float cbrtf(float);
long double cbrtl(long double);
double pow(double, double);
float powf(float, float);
long double powl(long double, long double);
double sqrt(double);
float sqrtf(float);
long double sqrtl(long double);
void test(double d1, double d2, double d3, float f1, float f2, float f3,
          long double ld1, long double ld2, long double ld3) {
  extern void link_failure_sqrt_sqrt(void);
  if (sqrt(sqrt(d1)) != pow(d1, 1.0 / (2 * 2)) ||
      sqrtf(sqrtf(f1)) != powf(f1, 1.0F / (2 * 2)) ||
      sqrtl(sqrtl(ld1)) != powl(ld1, 1.0L / (2 * 2)))
    link_failure_sqrt_sqrt();
  extern void link_failure_sqrt_cbrt(void);
  if (sqrt(cbrt(d1)) != pow(d1, 1.0 / (2 * 3)) ||
      sqrtf(cbrtf(f1)) != powf(f1, 1.0F / (2 * 3)) ||
      sqrtl(cbrtl(ld1)) != powl(ld1, 1.0L / (2 * 3)))
    link_failure_sqrt_cbrt();
  extern void link_failure_cbrt_sqrt(void);
  if (cbrt(sqrt(d1)) != pow(d1, 1.0 / (3 * 2)) ||
      cbrtf(sqrtf(f1)) != powf(f1, 1.0F / (3 * 2)) ||
      cbrtl(sqrtl(ld1)) != powl(ld1, 1.0L / (3 * 2)))
    link_failure_cbrt_sqrt();
  extern void link_failure_pow_sqrt(void);
  if (pow(sqrt(d1), d2) != pow(d1, d2 / 2) ||
      powf(sqrtf(f1), f2) != powf(f1, f2 / 2) ||
      powl(sqrtl(ld1), ld2) != powl(ld1, ld2 / 2))
    link_failure_pow_sqrt();
  extern void link_failure_sqrt_pow(void);
  if (sqrt(pow(d1, d2)) != pow(d1, d2 / 2) ||
      sqrtf(powf(f1, f2)) != powf(f1, f2 / 2) ||
      sqrtl(powl(ld1, ld2)) != powl(ld1, ld2 / 2))
    link_failure_sqrt_pow();
  extern void link_failure_pow_pow(void);
  if (pow(pow(d1, d2), d3) != pow(d1, d2 * d3) ||
      powf(powf(f1, f2), f3) != powf(f1, f2 * f3) ||
      powl(powl(ld1, ld2), ld3) != powl(ld1, ld2 * ld3))
    link_failure_pow_pow();
  extern void link_failure_root_x_root(void);
  if (sqrt(d1) * sqrt(d2) != sqrt(d1 * d2) ||
      sqrtf(f1) * sqrtf(f2) != sqrtf(f1 * f2) ||
      sqrtl(ld1) * sqrtl(ld2) != sqrtl(ld1 * ld2))
    link_failure_root_x_root();
  extern void link_failure_root_x_root(void);
  if (cbrt(d1) * cbrt(d2) != cbrt(d1 * d2) ||
      cbrtf(f1) * cbrtf(f2) != cbrtf(f1 * f2) ||
      cbrtl(ld1) * cbrtl(ld2) != cbrtl(ld1 * ld2))
    link_failure_root_x_root();
  extern void link_failure_pow_x_pow(void);
  if (pow(d1, d2) * pow(d1, d3) != pow(d1, d2 + d3) ||
      powf(f1, f2) * powf(f1, f3) != powf(f1, f2 + f3) ||
      powl(ld1, ld2) * powl(ld1, ld3) != powl(ld1, ld2 + ld3))
    link_failure_pow_x_pow();
}


x86 assembly (clang, -O0):
<test>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1a0,%rsp
fldt   0x30(%rbp)
fldt   0x20(%rbp)
fldt   0x10(%rbp)
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
movsd  %xmm2,-0x18(%rbp)
movss  %xmm3,-0x1c(%rbp)
movss  %xmm4,-0x20(%rbp)
movss  %xmm5,-0x24(%rbp)
fstpt  -0x40(%rbp)
fstpt  -0x50(%rbp)
fstpt  -0x60(%rbp)
movsd  -0x8(%rbp),%xmm0
call   1130 <sqrt@plt>
call   1130 <sqrt@plt>
movsd  %xmm0,-0x68(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xd94(%rip),%xmm1
call   1120 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x68(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jne    130e <test+0xfe>
jp     130e <test+0xfe>
movss  -0x1c(%rbp),%xmm0
call   10c0 <sqrtf@plt>
call   10c0 <sqrtf@plt>
movss  %xmm0,-0x6c(%rbp)
movss  -0x1c(%rbp),%xmm0
movss  0xd6e(%rip),%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jne    130e <test+0xfe>
jp     130e <test+0xfe>
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   10b0 <sqrtl@plt>
mov    %rsp,%rax
fstpt  (%rax)
call   10b0 <sqrtl@plt>
fstpt  -0x78(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
flds   0xd2c(%rip)
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fldt   -0x78(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    130e <test+0xfe>
jp     130e <test+0xfe>
jmp    1313 <test+0x103>
call   1050 <link_failure_sqrt_sqrt@plt>
movsd  -0x8(%rbp),%xmm0
call   10f0 <cbrt@plt>
call   1130 <sqrt@plt>
movsd  %xmm0,-0x80(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xcd4(%rip),%xmm1
call   1120 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x80(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jne    13e2 <test+0x1d2>
jp     13e2 <test+0x1d2>
movss  -0x1c(%rbp),%xmm0
call   1080 <cbrtf@plt>
call   10c0 <sqrtf@plt>
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
movss  0xca7(%rip),%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0x84(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    13e2 <test+0x1d2>
jp     13e2 <test+0x1d2>
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1070 <cbrtl@plt>
mov    %rsp,%rax
fstpt  (%rax)
call   10b0 <sqrtl@plt>
fstpt  -0x90(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fldt   0xc73(%rip)
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fldt   -0x90(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    13e2 <test+0x1d2>
jp     13e2 <test+0x1d2>
jmp    13e7 <test+0x1d7>
call   1110 <link_failure_sqrt_cbrt@plt>
movsd  -0x8(%rbp),%xmm0
call   1130 <sqrt@plt>
call   10f0 <cbrt@plt>
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  0xbfd(%rip),%xmm1
call   1120 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x98(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jne    14bc <test+0x2ac>
jp     14bc <test+0x2ac>
movss  -0x1c(%rbp),%xmm0
call   10c0 <sqrtf@plt>
call   1080 <cbrtf@plt>
movss  %xmm0,-0x9c(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
movss  0xbcd(%rip),%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0x9c(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    14bc <test+0x2ac>
jp     14bc <test+0x2ac>
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   10b0 <sqrtl@plt>
mov    %rsp,%rax
fstpt  (%rax)
call   1070 <cbrtl@plt>
fstpt  -0xa8(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fldt   0xb99(%rip)
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fldt   -0xa8(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    14bc <test+0x2ac>
jp     14bc <test+0x2ac>
jmp    14c1 <test+0x2b1>
call   10a0 <link_failure_cbrt_sqrt@plt>
movsd  -0x8(%rbp),%xmm0
call   1130 <sqrt@plt>
movsd  -0x10(%rbp),%xmm1
call   1120 <pow@plt>
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
movsd  0xb21(%rip),%xmm2
divsd  %xmm2,%xmm1
call   1120 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xb0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jne    15bd <test+0x3ad>
jp     15bd <test+0x3ad>
movss  -0x1c(%rbp),%xmm0
call   10c0 <sqrtf@plt>
movss  -0x20(%rbp),%xmm1
call   1040 <powf@plt>
movss  %xmm0,-0xb4(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm1
movss  0xadf(%rip),%xmm2
divss  %xmm2,%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    15bd <test+0x3ad>
jp     15bd <test+0x3ad>
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   10b0 <sqrtl@plt>
fldt   -0x50(%rbp)
mov    %rsp,%rax
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fstpt  -0xc0(%rbp)
fldt   -0x40(%rbp)
fldt   -0x50(%rbp)
flds   0xa8d(%rip)
fdivrp %st,%st(1)
mov    %rsp,%rax
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fldt   -0xc0(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    15bd <test+0x3ad>
jp     15bd <test+0x3ad>
jmp    15c2 <test+0x3b2>
call   1100 <link_failure_pow_sqrt@plt>
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
call   1120 <pow@plt>
call   1130 <sqrt@plt>
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
movsd  0xa20(%rip),%xmm2
divsd  %xmm2,%xmm1
call   1120 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xc8(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jne    16be <test+0x4ae>
jp     16be <test+0x4ae>
movss  -0x1c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm1
call   1040 <powf@plt>
call   10c0 <sqrtf@plt>
movss  %xmm0,-0xcc(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm1
movss  0x9de(%rip),%xmm2
divss  %xmm2,%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0xcc(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    16be <test+0x4ae>
jp     16be <test+0x4ae>
fldt   -0x40(%rbp)
fldt   -0x50(%rbp)
mov    %rsp,%rax
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
mov    %rsp,%rax
fstpt  (%rax)
call   10b0 <sqrtl@plt>
fstpt  -0xd8(%rbp)
fldt   -0x40(%rbp)
fldt   -0x50(%rbp)
flds   0x98c(%rip)
fdivrp %st,%st(1)
mov    %rsp,%rax
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fldt   -0xd8(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    16be <test+0x4ae>
jp     16be <test+0x4ae>
jmp    16c3 <test+0x4b3>
call   1090 <link_failure_sqrt_pow@plt>
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
call   1120 <pow@plt>
movsd  -0x18(%rbp),%xmm1
call   1120 <pow@plt>
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
call   1120 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xe0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jne    17be <test+0x5ae>
jp     17be <test+0x5ae>
movss  -0x1c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm1
call   1040 <powf@plt>
movss  -0x24(%rbp),%xmm1
call   1040 <powf@plt>
movss  %xmm0,-0xe4(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm1
mulss  -0x24(%rbp),%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0xe4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    17be <test+0x5ae>
jp     17be <test+0x5ae>
fldt   -0x40(%rbp)
fldt   -0x50(%rbp)
mov    %rsp,%rax
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fldt   -0x60(%rbp)
mov    %rsp,%rax
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fstpt  -0xf0(%rbp)
fldt   -0x40(%rbp)
fldt   -0x50(%rbp)
fldt   -0x60(%rbp)
fmulp  %st,%st(1)
mov    %rsp,%rax
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fldt   -0xf0(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    17be <test+0x5ae>
jp     17be <test+0x5ae>
jmp    17c3 <test+0x5b3>
call   10d0 <link_failure_pow_pow@plt>
movsd  -0x8(%rbp),%xmm0
call   1130 <sqrt@plt>
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
call   1130 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x100(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
mulsd  -0x10(%rbp),%xmm0
call   1130 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0xf8(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jne    18d7 <test+0x6c7>
jp     18d7 <test+0x6c7>
movss  -0x1c(%rbp),%xmm0
call   10c0 <sqrtf@plt>
movss  %xmm0,-0x108(%rbp)
ff
movss  -0x20(%rbp),%xmm0
call   10c0 <sqrtf@plt>
movaps %xmm0,%xmm1
movss  -0x108(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x104(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
mulss  -0x20(%rbp),%xmm0
call   10c0 <sqrtf@plt>
movaps %xmm0,%xmm1
movss  -0x104(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    18d7 <test+0x6c7>
jp     18d7 <test+0x6c7>
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   10b0 <sqrtl@plt>
fstpt  -0x120(%rbp)
fldt   -0x50(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   10b0 <sqrtl@plt>
fldt   -0x120(%rbp)
fmulp  %st,%st(1)
fstpt  -0x114(%rbp)
fldt   -0x40(%rbp)
fldt   -0x50(%rbp)
fmulp  %st,%st(1)
mov    %rsp,%rax
fstpt  (%rax)
call   10b0 <sqrtl@plt>
fldt   -0x114(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    18d7 <test+0x6c7>
jp     18d7 <test+0x6c7>
jmp    18dc <test+0x6cc>
call   10e0 <link_failure_root_x_root@plt>
movsd  -0x8(%rbp),%xmm0
call   10f0 <cbrt@plt>
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
call   10f0 <cbrt@plt>
movaps %xmm0,%xmm1
movsd  -0x130(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
mulsd  -0x10(%rbp),%xmm0
call   10f0 <cbrt@plt>
movaps %xmm0,%xmm1
movsd  -0x128(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jne    19f0 <test+0x7e0>
jp     19f0 <test+0x7e0>
movss  -0x1c(%rbp),%xmm0
call   1080 <cbrtf@plt>
movss  %xmm0,-0x138(%rbp)
ff
movss  -0x20(%rbp),%xmm0
call   1080 <cbrtf@plt>
movaps %xmm0,%xmm1
movss  -0x138(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x134(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
mulss  -0x20(%rbp),%xmm0
call   1080 <cbrtf@plt>
movaps %xmm0,%xmm1
movss  -0x134(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    19f0 <test+0x7e0>
jp     19f0 <test+0x7e0>
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1070 <cbrtl@plt>
fstpt  -0x150(%rbp)
fldt   -0x50(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1070 <cbrtl@plt>
fldt   -0x150(%rbp)
fmulp  %st,%st(1)
fstpt  -0x144(%rbp)
fldt   -0x40(%rbp)
fldt   -0x50(%rbp)
fmulp  %st,%st(1)
mov    %rsp,%rax
fstpt  (%rax)
call   1070 <cbrtl@plt>
fldt   -0x144(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    19f0 <test+0x7e0>
jp     19f0 <test+0x7e0>
jmp    19f5 <test+0x7e5>
call   10e0 <link_failure_root_x_root@plt>
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
call   1120 <pow@plt>
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm1
call   1120 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x160(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
addsd  -0x18(%rbp),%xmm1
call   1120 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x158(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jne    1b39 <test+0x929>
jp     1b39 <test+0x929>
movss  -0x1c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm1
call   1040 <powf@plt>
movss  %xmm0,-0x168(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
movss  -0x24(%rbp),%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0x168(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x164(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm1
addss  -0x24(%rbp),%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0x164(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    1b39 <test+0x929>
jp     1b39 <test+0x929>
fldt   -0x40(%rbp)
fldt   -0x50(%rbp)
mov    %rsp,%rax
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fstpt  -0x180(%rbp)
fldt   -0x40(%rbp)
fldt   -0x60(%rbp)
mov    %rsp,%rax
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fldt   -0x180(%rbp)
fmulp  %st,%st(1)
fstpt  -0x174(%rbp)
fldt   -0x40(%rbp)
fldt   -0x50(%rbp)
fldt   -0x60(%rbp)
faddp  %st,%st(1)
mov    %rsp,%rax
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fldt   -0x174(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    1b39 <test+0x929>
jp     1b39 <test+0x929>
jmp    1b3e <test+0x92e>
call   1060 <link_failure_pow_x_pow@plt>
add    $0x1a0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<test>:
sub    $0xa8,%rsp
movss  %xmm5,0x8c(%rsp)
movss  %xmm4,0x3c(%rsp)
movss  %xmm3,0x2c(%rsp)
movsd  %xmm2,0x90(%rsp)
movsd  %xmm1,0x78(%rsp)
fldt   0xd0(%rsp)
fstpt  0x9c(%rsp)
fldt   0xc0(%rsp)
fstpt  0x80(%rsp)
fldt   0xb0(%rsp)
fstpt  0x5c(%rsp)
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
movsd  %xmm0,0x40(%rsp)
jb     1283 <test+0x73>
sqrtsd %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jae    1292 <test+0x82>
call   1130 <sqrt@plt>
jmp    1296 <test+0x86>
call   1130 <sqrt@plt>
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     127c <test+0x6c>
sqrtsd %xmm0,%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x40(%rsp),%xmm0
movsd  0xd56(%rip),%xmm1
call   1120 <pow@plt>
movsd  0x50(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    1355 <test+0x145>
jp     1355 <test+0x145>
xorpd  %xmm1,%xmm1
movss  0x2c(%rsp),%xmm0
ucomiss %xmm1,%xmm0
jb     12e4 <test+0xd4>
sqrtss %xmm0,%xmm0
ucomiss %xmm1,%xmm0
jae    12f1 <test+0xe1>
call   10c0 <sqrtf@plt>
jmp    12f5 <test+0xe5>
call   10c0 <sqrtf@plt>
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     12dd <test+0xcd>
sqrtss %xmm0,%xmm0
movss  %xmm0,0x50(%rsp)
movss  0x2c(%rsp),%xmm0
movss  0xd0f(%rip),%xmm1
call   1040 <powf@plt>
movss  0x50(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    1355 <test+0x145>
jp     1355 <test+0x145>
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   10b0 <sqrtl@plt>
fstpt  (%rsp)
call   10b0 <sqrtl@plt>
fstpt  0x50(%rsp)
flds   0xcdf(%rip)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fldt   0x50(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    1355 <test+0x145>
jnp    135a <test+0x14a>
call   1050 <link_failure_sqrt_sqrt@plt>
movsd  0x40(%rsp),%xmm0
call   10f0 <cbrt@plt>
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
movsd  %xmm0,0x50(%rsp)
jb     137a <test+0x16a>
sqrtsd %xmm0,%xmm0
jmp    137f <test+0x16f>
call   1130 <sqrt@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0x40(%rsp),%xmm0
movsd  0xc75(%rip),%xmm1
call   1120 <pow@plt>
movsd  0x30(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    1429 <test+0x219>
jp     1429 <test+0x219>
movss  0x2c(%rsp),%xmm0
call   1080 <cbrtf@plt>
xorpd  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     13c4 <test+0x1b4>
sqrtss %xmm0,%xmm0
jmp    13c9 <test+0x1b9>
call   10c0 <sqrtf@plt>
movss  %xmm0,0x30(%rsp)
movss  0xc45(%rip),%xmm1
movss  0x2c(%rsp),%xmm0
call   1040 <powf@plt>
movss  0x30(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    1429 <test+0x219>
jp     1429 <test+0x219>
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1070 <cbrtl@plt>
fstpt  (%rsp)
call   10b0 <sqrtl@plt>
fstpt  0x30(%rsp)
fldt   0xc23(%rip)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fldt   0x30(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    1429 <test+0x219>
jnp    142e <test+0x21e>
call   1110 <link_failure_sqrt_cbrt@plt>
xorps  %xmm0,%xmm0
movsd  0x40(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jb     1446 <test+0x236>
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
jmp    144f <test+0x23f>
movapd %xmm1,%xmm0
call   1130 <sqrt@plt>
call   10f0 <cbrt@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0xba6(%rip),%xmm1
movsd  0x40(%rsp),%xmm0
call   1120 <pow@plt>
movsd  0x30(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    1508 <test+0x2f8>
jp     1508 <test+0x2f8>
xorpd  %xmm0,%xmm0
movss  0x2c(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jb     149b <test+0x28b>
xorps  %xmm0,%xmm0
sqrtss %xmm1,%xmm0
jmp    14a3 <test+0x293>
movaps %xmm1,%xmm0
call   10c0 <sqrtf@plt>
call   1080 <cbrtf@plt>
movss  %xmm0,0x30(%rsp)
movss  0xb66(%rip),%xmm1
movss  0x2c(%rsp),%xmm0
call   1040 <powf@plt>
movss  0x30(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    1508 <test+0x2f8>
jp     1508 <test+0x2f8>
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   10b0 <sqrtl@plt>
fstpt  (%rsp)
call   1070 <cbrtl@plt>
fstpt  0x30(%rsp)
fldt   0xb44(%rip)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fldt   0x30(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    1508 <test+0x2f8>
jnp    150d <test+0x2fd>
call   10a0 <link_failure_cbrt_sqrt@plt>
xorps  %xmm0,%xmm0
movsd  0x40(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jb     1525 <test+0x315>
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
jmp    152e <test+0x31e>
movapd %xmm1,%xmm0
call   1130 <sqrt@plt>
movsd  0x78(%rsp),%xmm1
call   1120 <pow@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0xac9(%rip),%xmm1
mulsd  0x78(%rsp),%xmm1
movsd  0x40(%rsp),%xmm0
movsd  %xmm1,0x68(%rsp)
call   1120 <pow@plt>
movsd  0x30(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    1617 <test+0x407>
jp     1617 <test+0x407>
xorpd  %xmm0,%xmm0
movss  0x2c(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jb     158c <test+0x37c>
xorps  %xmm0,%xmm0
sqrtss %xmm1,%xmm0
jmp    1594 <test+0x384>
movaps %xmm1,%xmm0
call   10c0 <sqrtf@plt>
movss  0x3c(%rsp),%xmm1
call   1040 <powf@plt>
movss  %xmm0,0x30(%rsp)
movss  0xa73(%rip),%xmm1
mulss  0x3c(%rsp),%xmm1
movss  0x2c(%rsp),%xmm0
call   1040 <powf@plt>
movss  0x30(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    1617 <test+0x407>
jp     1617 <test+0x407>
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   10b0 <sqrtl@plt>
fldt   0x80(%rsp)
fstpt  0x10(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fstpt  0x30(%rsp)
fldt   0x80(%rsp)
fmuls  0xa25(%rip)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fldt   0x30(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    1617 <test+0x407>
jnp    161c <test+0x40c>
call   1100 <link_failure_pow_sqrt@plt>
movsd  0x40(%rsp),%xmm0
movsd  0x78(%rsp),%xmm1
call   1120 <pow@plt>
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     163d <test+0x42d>
sqrtsd %xmm0,%xmm0
jmp    1642 <test+0x432>
call   1130 <sqrt@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0x40(%rsp),%xmm0
movsd  0x68(%rsp),%xmm1
call   1120 <pow@plt>
movsd  0x30(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    170b <test+0x4fb>
jp     170b <test+0x4fb>
movss  0x2c(%rsp),%xmm0
movss  0x3c(%rsp),%xmm1
call   1040 <powf@plt>
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     168e <test+0x47e>
sqrtss %xmm0,%xmm0
jmp    1693 <test+0x483>
call   10c0 <sqrtf@plt>
movss  %xmm0,0x30(%rsp)
movss  0x97f(%rip),%xmm1
mulss  0x3c(%rsp),%xmm1
movss  0x2c(%rsp),%xmm0
call   1040 <powf@plt>
movss  0x30(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    170b <test+0x4fb>
jp     170b <test+0x4fb>
fldt   0x80(%rsp)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fstpt  (%rsp)
call   10b0 <sqrtl@plt>
fstpt  0x30(%rsp)
fldt   0x80(%rsp)
fmuls  0x931(%rip)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fldt   0x30(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    170b <test+0x4fb>
jnp    1710 <test+0x500>
call   1090 <link_failure_sqrt_pow@plt>
movsd  0x40(%rsp),%xmm0
movsd  0x78(%rsp),%xmm1
call   1120 <pow@plt>
movsd  0x90(%rsp),%xmm1
call   1120 <pow@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0x78(%rsp),%xmm1
mulsd  0x90(%rsp),%xmm1
movsd  0x40(%rsp),%xmm0
call   1120 <pow@plt>
movsd  0x30(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    180b <test+0x5fb>
jp     180b <test+0x5fb>
movss  0x2c(%rsp),%xmm0
movss  0x3c(%rsp),%xmm1
call   1040 <powf@plt>
movss  0x8c(%rsp),%xmm1
call   1040 <powf@plt>
movss  %xmm0,0x30(%rsp)
movss  0x3c(%rsp),%xmm1
mulss  0x8c(%rsp),%xmm1
movss  0x2c(%rsp),%xmm0
call   1040 <powf@plt>
movss  0x30(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    180b <test+0x5fb>
jp     180b <test+0x5fb>
fldt   0x80(%rsp)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fldt   0x9c(%rsp)
fstpt  0x10(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fstpt  0x30(%rsp)
fldt   0x80(%rsp)
fldt   0x9c(%rsp)
fmulp  %st,%st(1)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fldt   0x30(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    180b <test+0x5fb>
jnp    1810 <test+0x600>
call   10d0 <link_failure_pow_pow@plt>
xorps  %xmm1,%xmm1
movsd  0x40(%rsp),%xmm0
ucomisd %xmm1,%xmm0
jb     1825 <test+0x615>
sqrtsd %xmm0,%xmm2
jmp    1831 <test+0x621>
call   1130 <sqrt@plt>
xorps  %xmm1,%xmm1
movapd %xmm0,%xmm2
movsd  0x78(%rsp),%xmm0
ucomisd %xmm1,%xmm0
jb     1847 <test+0x637>
movapd %xmm0,%xmm3
sqrtsd %xmm0,%xmm0
jmp    185e <test+0x64e>
movsd  %xmm2,0x68(%rsp)
call   1130 <sqrt@plt>
movsd  0x78(%rsp),%xmm3
movsd  0x68(%rsp),%xmm2
movsd  0x40(%rsp),%xmm1
mulsd  %xmm0,%xmm2
mulsd  %xmm3,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
movsd  %xmm1,0x30(%rsp)
jb     1885 <test+0x675>
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
jmp    189a <test+0x68a>
movapd %xmm1,%xmm0
movsd  %xmm2,0x68(%rsp)
call   1130 <sqrt@plt>
movsd  0x68(%rsp),%xmm2
ucomisd %xmm0,%xmm2
jne    1979 <test+0x769>
jp     1979 <test+0x769>
xorpd  %xmm1,%xmm1
movss  0x2c(%rsp),%xmm0
ucomiss %xmm1,%xmm0
jb     18c2 <test+0x6b2>
xorps  %xmm2,%xmm2
sqrtss %xmm0,%xmm2
jmp    18cd <test+0x6bd>
call   10c0 <sqrtf@plt>
xorps  %xmm1,%xmm1
movaps %xmm0,%xmm2
movss  0x3c(%rsp),%xmm0
ucomiss %xmm1,%xmm0
jb     18e1 <test+0x6d1>
movaps %xmm0,%xmm3
sqrtss %xmm0,%xmm0
jmp    18f8 <test+0x6e8>
movss  %xmm2,0x68(%rsp)
call   10c0 <sqrtf@plt>
movss  0x3c(%rsp),%xmm3
movss  0x68(%rsp),%xmm2
movss  0x2c(%rsp),%xmm1
mulss  %xmm0,%xmm2
movaps %xmm1,%xmm0
mulss  %xmm3,%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1917 <test+0x707>
sqrtss %xmm0,%xmm0
jmp    1928 <test+0x718>
movss  %xmm2,0x68(%rsp)
call   10c0 <sqrtf@plt>
movss  0x68(%rsp),%xmm2
ucomiss %xmm0,%xmm2
jne    1979 <test+0x769>
jp     1979 <test+0x769>
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   10b0 <sqrtl@plt>
fstpt  0x68(%rsp)
fldt   0x80(%rsp)
fstpt  (%rsp)
call   10b0 <sqrtl@plt>
fldt   0x68(%rsp)
fmulp  %st,%st(1)
fstpt  0x68(%rsp)
fldt   0x5c(%rsp)
fldt   0x80(%rsp)
fmulp  %st,%st(1)
fstpt  (%rsp)
call   10b0 <sqrtl@plt>
fldt   0x68(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    1979 <test+0x769>
jnp    197e <test+0x76e>
call   10e0 <link_failure_root_x_root@plt>
movsd  0x78(%rsp),%xmm0
call   10f0 <cbrt@plt>
movsd  0x50(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x50(%rsp)
movsd  0x30(%rsp),%xmm0
call   10f0 <cbrt@plt>
movsd  0x50(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    1a4a <test+0x83a>
jp     1a4a <test+0x83a>
movss  0x2c(%rsp),%xmm0
call   1080 <cbrtf@plt>
movss  %xmm0,0x50(%rsp)
movss  0x3c(%rsp),%xmm0
call   1080 <cbrtf@plt>
mulss  0x50(%rsp),%xmm0
movss  %xmm0,0x50(%rsp)
movss  0x2c(%rsp),%xmm0
mulss  0x3c(%rsp),%xmm0
call   1080 <cbrtf@plt>
movss  0x50(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    1a4a <test+0x83a>
jp     1a4a <test+0x83a>
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1070 <cbrtl@plt>
fstpt  0x50(%rsp)
fldt   0x80(%rsp)
fstpt  (%rsp)
call   1070 <cbrtl@plt>
fldt   0x50(%rsp)
fmulp  %st,%st(1)
fstpt  0x50(%rsp)
fldt   0x5c(%rsp)
fldt   0x80(%rsp)
fmulp  %st,%st(1)
fstpt  (%rsp)
call   1070 <cbrtl@plt>
fldt   0x50(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    1a4a <test+0x83a>
jnp    1a4f <test+0x83f>
call   10e0 <link_failure_root_x_root@plt>
movsd  0x40(%rsp),%xmm0
movsd  0x78(%rsp),%xmm1
call   1120 <pow@plt>
movsd  %xmm0,0x50(%rsp)
movsd  0x40(%rsp),%xmm0
movsd  0x90(%rsp),%xmm1
call   1120 <pow@plt>
mulsd  0x50(%rsp),%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x78(%rsp),%xmm1
addsd  0x90(%rsp),%xmm1
movsd  0x40(%rsp),%xmm0
call   1120 <pow@plt>
movsd  0x50(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    1b7c <test+0x96c>
jp     1b7c <test+0x96c>
movss  0x2c(%rsp),%xmm0
movss  0x3c(%rsp),%xmm1
call   1040 <powf@plt>
movss  %xmm0,0x40(%rsp)
movss  0x2c(%rsp),%xmm0
movss  0x8c(%rsp),%xmm1
call   1040 <powf@plt>
mulss  0x40(%rsp),%xmm0
movss  %xmm0,0x40(%rsp)
movss  0x3c(%rsp),%xmm1
addss  0x8c(%rsp),%xmm1
movss  0x2c(%rsp),%xmm0
call   1040 <powf@plt>
movss  0x40(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    1b7c <test+0x96c>
jp     1b7c <test+0x96c>
fldt   0x80(%rsp)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fstpt  0x40(%rsp)
fldt   0x9c(%rsp)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fldt   0x40(%rsp)
fmulp  %st,%st(1)
fstpt  0x40(%rsp)
fldt   0x80(%rsp)
fldt   0x9c(%rsp)
faddp  %st,%st(1)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fldt   0x40(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    1b7c <test+0x96c>
jnp    1b88 <test+0x978>
add    $0xa8,%rsp
jmp    1060 <link_failure_pow_x_pow@plt>
add    $0xa8,%rsp
ret

LLVM IR (-O0):
define void @test(double %0, double %1, double %2, float %3, float %4, float %5, x86_fp80 %6, x86_fp80 %7, x86_fp80 %8) {
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca float
%14 = alloca float
%15 = alloca float
%16 = alloca x86_fp80
%17 = alloca x86_fp80
%18 = alloca x86_fp80
store double %0, double* %10
store double %1, double* %11
store double %2, double* %12
store float %3, float* %13
store float %4, float* %14
store float %5, float* %15
store x86_fp80 %6, x86_fp80* %16
store x86_fp80 %7, x86_fp80* %17
store x86_fp80 %8, x86_fp80* %18
%19 = load double, double* %10
%20 = call double @sqrt(double %19)
%21 = call double @sqrt(double %20)
%22 = load double, double* %10
%23 = call double @pow(double %22, double 2.500000e-01)
%24 = fcmp une double %21, %23
br i1 %24, label %39, label %25
25: ; preds = %9
%26 = load float, float* %13
%27 = call float @sqrtf(float %26)
%28 = call float @sqrtf(float %27)
%29 = load float, float* %13
%30 = call float @powf(float %29, float 2.500000e-01)
%31 = fcmp une float %28, %30
br i1 %31, label %39, label %32
32: ; preds = %25
%33 = load x86_fp80, x86_fp80* %16
%34 = call x86_fp80 @sqrtl(x86_fp80 %33)
%35 = call x86_fp80 @sqrtl(x86_fp80 %34)
%36 = load x86_fp80, x86_fp80* %16
%37 = call x86_fp80 @powl(x86_fp80 %36, x86_fp80 0xK3FFD8000000000000000)
%38 = fcmp une x86_fp80 %35, %37
br i1 %38, label %39, label %40
39: ; preds = %32, %25, %9
br label %40
40: ; preds = %39, %32
%41 = load double, double* %10
%42 = call double @cbrt(double %41)
%43 = call double @sqrt(double %42)
%44 = load double, double* %10
%45 = call double @pow(double %44, double 0x3FC5555555555555)
%46 = fcmp une double %43, %45
br i1 %46, label %61, label %47
47: ; preds = %40
%48 = load float, float* %13
%49 = call float @cbrtf(float %48)
%50 = call float @sqrtf(float %49)
%51 = load float, float* %13
%52 = call float @powf(float %51, float 0x3FC5555560000000)
%53 = fcmp une float %50, %52
br i1 %53, label %61, label %54
54: ; preds = %47
%55 = load x86_fp80, x86_fp80* %16
%56 = call x86_fp80 @cbrtl(x86_fp80 %55)
%57 = call x86_fp80 @sqrtl(x86_fp80 %56)
%58 = load x86_fp80, x86_fp80* %16
%59 = call x86_fp80 @powl(x86_fp80 %58, x86_fp80 0xK3FFCAAAAAAAAAAAAAAAB)
%60 = fcmp une x86_fp80 %57, %59
br i1 %60, label %61, label %62
61: ; preds = %54, %47, %40
br label %62
62: ; preds = %61, %54
%63 = load double, double* %10
%64 = call double @sqrt(double %63)
%65 = call double @cbrt(double %64)
%66 = load double, double* %10
%67 = call double @pow(double %66, double 0x3FC5555555555555)
%68 = fcmp une double %65, %67
br i1 %68, label %83, label %69
69: ; preds = %62
%70 = load float, float* %13
%71 = call float @sqrtf(float %70)
%72 = call float @cbrtf(float %71)
%73 = load float, float* %13
%74 = call float @powf(float %73, float 0x3FC5555560000000)
%75 = fcmp une float %72, %74
br i1 %75, label %83, label %76
76: ; preds = %69
%77 = load x86_fp80, x86_fp80* %16
%78 = call x86_fp80 @sqrtl(x86_fp80 %77)
%79 = call x86_fp80 @cbrtl(x86_fp80 %78)
%80 = load x86_fp80, x86_fp80* %16
%81 = call x86_fp80 @powl(x86_fp80 %80, x86_fp80 0xK3FFCAAAAAAAAAAAAAAAB)
%82 = fcmp une x86_fp80 %79, %81
br i1 %82, label %83, label %84
83: ; preds = %76, %69, %62
br label %84
84: ; preds = %83, %76
%85 = load double, double* %10
%86 = call double @sqrt(double %85)
%87 = load double, double* %11
%88 = call double @pow(double %86, double %87)
%89 = load double, double* %10
%90 = load double, double* %11
%91 = fdiv double %90, 2.000000e+00
%92 = call double @pow(double %89, double %91)
%93 = fcmp une double %88, %92
br i1 %93, label %114, label %94
94: ; preds = %84
%95 = load float, float* %13
%96 = call float @sqrtf(float %95)
%97 = load float, float* %14
%98 = call float @powf(float %96, float %97)
%99 = load float, float* %13
%100 = load float, float* %14
%101 = fdiv float %100, 2.000000e+00
%102 = call float @powf(float %99, float %101)
%103 = fcmp une float %98, %102
br i1 %103, label %114, label %104
104: ; preds = %94
%105 = load x86_fp80, x86_fp80* %16
%106 = call x86_fp80 @sqrtl(x86_fp80 %105)
%107 = load x86_fp80, x86_fp80* %17
%108 = call x86_fp80 @powl(x86_fp80 %106, x86_fp80 %107)
%109 = load x86_fp80, x86_fp80* %16
%110 = load x86_fp80, x86_fp80* %17
%111 = fdiv x86_fp80 %110, 0xK40008000000000000000
%112 = call x86_fp80 @powl(x86_fp80 %109, x86_fp80 %111)
%113 = fcmp une x86_fp80 %108, %112
br i1 %113, label %114, label %115
114: ; preds = %104, %94, %84
br label %115
115: ; preds = %114, %104
%116 = load double, double* %10
%117 = load double, double* %11
%118 = call double @pow(double %116, double %117)
%119 = call double @sqrt(double %118)
%120 = load double, double* %10
%121 = load double, double* %11
%122 = fdiv double %121, 2.000000e+00
%123 = call double @pow(double %120, double %122)
%124 = fcmp une double %119, %123
br i1 %124, label %145, label %125
125: ; preds = %115
%126 = load float, float* %13
%127 = load float, float* %14
%128 = call float @powf(float %126, float %127)
%129 = call float @sqrtf(float %128)
%130 = load float, float* %13
%131 = load float, float* %14
%132 = fdiv float %131, 2.000000e+00
%133 = call float @powf(float %130, float %132)
%134 = fcmp une float %129, %133
br i1 %134, label %145, label %135
135: ; preds = %125
%136 = load x86_fp80, x86_fp80* %16
%137 = load x86_fp80, x86_fp80* %17
%138 = call x86_fp80 @powl(x86_fp80 %136, x86_fp80 %137)
%139 = call x86_fp80 @sqrtl(x86_fp80 %138)
%140 = load x86_fp80, x86_fp80* %16
%141 = load x86_fp80, x86_fp80* %17
%142 = fdiv x86_fp80 %141, 0xK40008000000000000000
%143 = call x86_fp80 @powl(x86_fp80 %140, x86_fp80 %142)
%144 = fcmp une x86_fp80 %139, %143
br i1 %144, label %145, label %146
145: ; preds = %135, %125, %115
br label %146
146: ; preds = %145, %135
%147 = load double, double* %10
%148 = load double, double* %11
%149 = call double @pow(double %147, double %148)
%150 = load double, double* %12
%151 = call double @pow(double %149, double %150)
%152 = load double, double* %10
%153 = load double, double* %11
%154 = load double, double* %12
%155 = fmul double %153, %154
%156 = call double @pow(double %152, double %155)
%157 = fcmp une double %151, %156
br i1 %157, label %182, label %158
158: ; preds = %146
%159 = load float, float* %13
%160 = load float, float* %14
%161 = call float @powf(float %159, float %160)
%162 = load float, float* %15
%163 = call float @powf(float %161, float %162)
%164 = load float, float* %13
%165 = load float, float* %14
%166 = load float, float* %15
%167 = fmul float %165, %166
%168 = call float @powf(float %164, float %167)
%169 = fcmp une float %163, %168
br i1 %169, label %182, label %170
170: ; preds = %158
%171 = load x86_fp80, x86_fp80* %16
%172 = load x86_fp80, x86_fp80* %17
%173 = call x86_fp80 @powl(x86_fp80 %171, x86_fp80 %172)
%174 = load x86_fp80, x86_fp80* %18
%175 = call x86_fp80 @powl(x86_fp80 %173, x86_fp80 %174)
%176 = load x86_fp80, x86_fp80* %16
%177 = load x86_fp80, x86_fp80* %17
%178 = load x86_fp80, x86_fp80* %18
%179 = fmul x86_fp80 %177, %178
%180 = call x86_fp80 @powl(x86_fp80 %176, x86_fp80 %179)
%181 = fcmp une x86_fp80 %175, %180
br i1 %181, label %182, label %183
182: ; preds = %170, %158, %146
br label %183
183: ; preds = %182, %170
%184 = load double, double* %10
%185 = call double @sqrt(double %184)
%186 = load double, double* %11
%187 = call double @sqrt(double %186)
%188 = fmul double %185, %187
%189 = load double, double* %10
%190 = load double, double* %11
%191 = fmul double %189, %190
%192 = call double @sqrt(double %191)
%193 = fcmp une double %188, %192
br i1 %193, label %216, label %194
194: ; preds = %183
%195 = load float, float* %13
%196 = call float @sqrtf(float %195)
%197 = load float, float* %14
%198 = call float @sqrtf(float %197)
%199 = fmul float %196, %198
%200 = load float, float* %13
%201 = load float, float* %14
%202 = fmul float %200, %201
%203 = call float @sqrtf(float %202)
%204 = fcmp une float %199, %203
br i1 %204, label %216, label %205
205: ; preds = %194
%206 = load x86_fp80, x86_fp80* %16
%207 = call x86_fp80 @sqrtl(x86_fp80 %206)
%208 = load x86_fp80, x86_fp80* %17
%209 = call x86_fp80 @sqrtl(x86_fp80 %208)
%210 = fmul x86_fp80 %207, %209
%211 = load x86_fp80, x86_fp80* %16
%212 = load x86_fp80, x86_fp80* %17
%213 = fmul x86_fp80 %211, %212
%214 = call x86_fp80 @sqrtl(x86_fp80 %213)
%215 = fcmp une x86_fp80 %210, %214
br i1 %215, label %216, label %217
216: ; preds = %205, %194, %183
br label %217
217: ; preds = %216, %205
%218 = load double, double* %10
%219 = call double @cbrt(double %218)
%220 = load double, double* %11
%221 = call double @cbrt(double %220)
%222 = fmul double %219, %221
%223 = load double, double* %10
%224 = load double, double* %11
%225 = fmul double %223, %224
%226 = call double @cbrt(double %225)
%227 = fcmp une double %222, %226
br i1 %227, label %250, label %228
228: ; preds = %217
%229 = load float, float* %13
%230 = call float @cbrtf(float %229)
%231 = load float, float* %14
%232 = call float @cbrtf(float %231)
%233 = fmul float %230, %232
%234 = load float, float* %13
%235 = load float, float* %14
%236 = fmul float %234, %235
%237 = call float @cbrtf(float %236)
%238 = fcmp une float %233, %237
br i1 %238, label %250, label %239
239: ; preds = %228
%240 = load x86_fp80, x86_fp80* %16
%241 = call x86_fp80 @cbrtl(x86_fp80 %240)
%242 = load x86_fp80, x86_fp80* %17
%243 = call x86_fp80 @cbrtl(x86_fp80 %242)
%244 = fmul x86_fp80 %241, %243
%245 = load x86_fp80, x86_fp80* %16
%246 = load x86_fp80, x86_fp80* %17
%247 = fmul x86_fp80 %245, %246
%248 = call x86_fp80 @cbrtl(x86_fp80 %247)
%249 = fcmp une x86_fp80 %244, %248
br i1 %249, label %250, label %251
250: ; preds = %239, %228, %217
br label %251
251: ; preds = %250, %239
%252 = load double, double* %10
%253 = load double, double* %11
%254 = call double @pow(double %252, double %253)
%255 = load double, double* %10
%256 = load double, double* %12
%257 = call double @pow(double %255, double %256)
%258 = fmul double %254, %257
%259 = load double, double* %10
%260 = load double, double* %11
%261 = load double, double* %12
%262 = fadd double %260, %261
%263 = call double @pow(double %259, double %262)
%264 = fcmp une double %258, %263
br i1 %264, label %293, label %265
265: ; preds = %251
%266 = load float, float* %13
%267 = load float, float* %14
%268 = call float @powf(float %266, float %267)
%269 = load float, float* %13
%270 = load float, float* %15
%271 = call float @powf(float %269, float %270)
%272 = fmul float %268, %271
%273 = load float, float* %13
%274 = load float, float* %14
%275 = load float, float* %15
%276 = fadd float %274, %275
%277 = call float @powf(float %273, float %276)
%278 = fcmp une float %272, %277
br i1 %278, label %293, label %279
279: ; preds = %265
%280 = load x86_fp80, x86_fp80* %16
%281 = load x86_fp80, x86_fp80* %17
%282 = call x86_fp80 @powl(x86_fp80 %280, x86_fp80 %281)
%283 = load x86_fp80, x86_fp80* %16
%284 = load x86_fp80, x86_fp80* %18
%285 = call x86_fp80 @powl(x86_fp80 %283, x86_fp80 %284)
%286 = fmul x86_fp80 %282, %285
%287 = load x86_fp80, x86_fp80* %16
%288 = load x86_fp80, x86_fp80* %17
%289 = load x86_fp80, x86_fp80* %18
%290 = fadd x86_fp80 %288, %289
%291 = call x86_fp80 @powl(x86_fp80 %287, x86_fp80 %290)
%292 = fcmp une x86_fp80 %286, %291
br i1 %292, label %293, label %294
293: ; preds = %279, %265, %251
br label %294
294: ; preds = %293, %279
ret void
}

LLVM IR (-O2):
define void @test(double %0, double %1, double %2, float %3, float %4, float %5, x86_fp80 %6, x86_fp80 %7, x86_fp80 %8) {
%10 = tail call double @sqrt(double %0)
%11 = tail call double @sqrt(double %10)
%12 = tail call double @pow(double %0, double 2.500000e-01)
%13 = fcmp une double %11, %12
br i1 %13, label %24, label %14
14: ; preds = %9
%15 = tail call float @sqrtf(float %3)
%16 = tail call float @sqrtf(float %15)
%17 = tail call float @powf(float %3, float 2.500000e-01)
%18 = fcmp une float %16, %17
br i1 %18, label %24, label %19
19: ; preds = %14
%20 = tail call x86_fp80 @sqrtl(x86_fp80 %6)
%21 = tail call x86_fp80 @sqrtl(x86_fp80 %20)
%22 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 0xK3FFD8000000000000000)
%23 = fcmp une x86_fp80 %21, %22
br i1 %23, label %24, label %25
24: ; preds = %19, %14, %9
tail call void @link_failure_sqrt_sqrt()
br label %25
25: ; preds = %24, %19
%26 = tail call double @cbrt(double %0)
%27 = tail call double @sqrt(double %26)
%28 = tail call double @pow(double %0, double 0x3FC5555555555555)
%29 = fcmp une double %27, %28
br i1 %29, label %40, label %30
30: ; preds = %25
%31 = tail call float @cbrtf(float %3)
%32 = tail call float @sqrtf(float %31)
%33 = tail call float @powf(float %3, float 0x3FC5555560000000)
%34 = fcmp une float %32, %33
br i1 %34, label %40, label %35
35: ; preds = %30
%36 = tail call x86_fp80 @cbrtl(x86_fp80 %6)
%37 = tail call x86_fp80 @sqrtl(x86_fp80 %36)
%38 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 0xK3FFCAAAAAAAAAAAAAAAB)
%39 = fcmp une x86_fp80 %37, %38
br i1 %39, label %40, label %41
40: ; preds = %35, %30, %25
tail call void @link_failure_sqrt_cbrt()
br label %41
41: ; preds = %40, %35
%42 = tail call double @sqrt(double %0)
%43 = tail call double @cbrt(double %42)
%44 = tail call double @pow(double %0, double 0x3FC5555555555555)
%45 = fcmp une double %43, %44
br i1 %45, label %56, label %46
46: ; preds = %41
%47 = tail call float @sqrtf(float %3)
%48 = tail call float @cbrtf(float %47)
%49 = tail call float @powf(float %3, float 0x3FC5555560000000)
%50 = fcmp une float %48, %49
br i1 %50, label %56, label %51
51: ; preds = %46
%52 = tail call x86_fp80 @sqrtl(x86_fp80 %6)
%53 = tail call x86_fp80 @cbrtl(x86_fp80 %52)
%54 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 0xK3FFCAAAAAAAAAAAAAAAB)
%55 = fcmp une x86_fp80 %53, %54
br i1 %55, label %56, label %57
56: ; preds = %51, %46, %41
tail call void @link_failure_cbrt_sqrt()
br label %57
57: ; preds = %56, %51
%58 = tail call double @sqrt(double %0)
%59 = tail call double @pow(double %58, double %1)
%60 = fmul double %1, 5.000000e-01
%61 = tail call double @pow(double %0, double %60)
%62 = fcmp une double %59, %61
br i1 %62, label %75, label %63
63: ; preds = %57
%64 = tail call float @sqrtf(float %3)
%65 = tail call float @powf(float %64, float %4)
%66 = fmul float %4, 5.000000e-01
%67 = tail call float @powf(float %3, float %66)
%68 = fcmp une float %65, %67
br i1 %68, label %75, label %69
69: ; preds = %63
%70 = tail call x86_fp80 @sqrtl(x86_fp80 %6)
%71 = tail call x86_fp80 @powl(x86_fp80 %70, x86_fp80 %7)
%72 = fmul x86_fp80 %7, 0xK3FFE8000000000000000
%73 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 %72)
%74 = fcmp une x86_fp80 %71, %73
br i1 %74, label %75, label %76
75: ; preds = %69, %63, %57
tail call void @link_failure_pow_sqrt()
br label %76
76: ; preds = %75, %69
%77 = tail call double @pow(double %0, double %1)
%78 = tail call double @sqrt(double %77)
%79 = tail call double @pow(double %0, double %60)
%80 = fcmp une double %78, %79
br i1 %80, label %93, label %81
81: ; preds = %76
%82 = tail call float @powf(float %3, float %4)
%83 = tail call float @sqrtf(float %82)
%84 = fmul float %4, 5.000000e-01
%85 = tail call float @powf(float %3, float %84)
%86 = fcmp une float %83, %85
br i1 %86, label %93, label %87
87: ; preds = %81
%88 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 %7)
%89 = tail call x86_fp80 @sqrtl(x86_fp80 %88)
%90 = fmul x86_fp80 %7, 0xK3FFE8000000000000000
%91 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 %90)
%92 = fcmp une x86_fp80 %89, %91
br i1 %92, label %93, label %94
93: ; preds = %87, %81, %76
tail call void @link_failure_sqrt_pow()
br label %94
94: ; preds = %93, %87
%95 = tail call double @pow(double %0, double %1)
%96 = tail call double @pow(double %95, double %2)
%97 = fmul double %1, %2
%98 = tail call double @pow(double %0, double %97)
%99 = fcmp une double %96, %98
br i1 %99, label %112, label %100
100: ; preds = %94
%101 = tail call float @powf(float %3, float %4)
%102 = tail call float @powf(float %101, float %5)
%103 = fmul float %4, %5
%104 = tail call float @powf(float %3, float %103)
%105 = fcmp une float %102, %104
br i1 %105, label %112, label %106
106: ; preds = %100
%107 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 %7)
%108 = tail call x86_fp80 @powl(x86_fp80 %107, x86_fp80 %8)
%109 = fmul x86_fp80 %7, %8
%110 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 %109)
%111 = fcmp une x86_fp80 %108, %110
br i1 %111, label %112, label %113
112: ; preds = %106, %100, %94
tail call void @link_failure_pow_pow()
br label %113
113: ; preds = %112, %106
%114 = tail call double @sqrt(double %0)
%115 = tail call double @sqrt(double %1)
%116 = fmul double %114, %115
%117 = fmul double %0, %1
%118 = tail call double @sqrt(double %117)
%119 = fcmp une double %116, %118
br i1 %119, label %134, label %120
120: ; preds = %113
%121 = tail call float @sqrtf(float %3)
%122 = tail call float @sqrtf(float %4)
%123 = fmul float %121, %122
%124 = fmul float %3, %4
%125 = tail call float @sqrtf(float %124)
%126 = fcmp une float %123, %125
br i1 %126, label %134, label %127
127: ; preds = %120
%128 = tail call x86_fp80 @sqrtl(x86_fp80 %6)
%129 = tail call x86_fp80 @sqrtl(x86_fp80 %7)
%130 = fmul x86_fp80 %128, %129
%131 = fmul x86_fp80 %6, %7
%132 = tail call x86_fp80 @sqrtl(x86_fp80 %131)
%133 = fcmp une x86_fp80 %130, %132
br i1 %133, label %134, label %135
134: ; preds = %127, %120, %113
tail call void @link_failure_root_x_root()
br label %135
135: ; preds = %134, %127
%136 = tail call double @cbrt(double %1)
%137 = fmul double %26, %136
%138 = tail call double @cbrt(double %117)
%139 = fcmp une double %137, %138
br i1 %139, label %154, label %140
140: ; preds = %135
%141 = tail call float @cbrtf(float %3)
%142 = tail call float @cbrtf(float %4)
%143 = fmul float %141, %142
%144 = fmul float %3, %4
%145 = tail call float @cbrtf(float %144)
%146 = fcmp une float %143, %145
br i1 %146, label %154, label %147
147: ; preds = %140
%148 = tail call x86_fp80 @cbrtl(x86_fp80 %6)
%149 = tail call x86_fp80 @cbrtl(x86_fp80 %7)
%150 = fmul x86_fp80 %148, %149
%151 = fmul x86_fp80 %6, %7
%152 = tail call x86_fp80 @cbrtl(x86_fp80 %151)
%153 = fcmp une x86_fp80 %150, %152
br i1 %153, label %154, label %155
154: ; preds = %147, %140, %135
tail call void @link_failure_root_x_root()
br label %155
155: ; preds = %154, %147
%156 = tail call double @pow(double %0, double %1)
%157 = tail call double @pow(double %0, double %2)
%158 = fmul double %156, %157
%159 = fadd double %1, %2
%160 = tail call double @pow(double %0, double %159)
%161 = fcmp une double %158, %160
br i1 %161, label %176, label %162
162: ; preds = %155
%163 = tail call float @powf(float %3, float %4)
%164 = tail call float @powf(float %3, float %5)
%165 = fmul float %163, %164
%166 = fadd float %4, %5
%167 = tail call float @powf(float %3, float %166)
%168 = fcmp une float %165, %167
br i1 %168, label %176, label %169
169: ; preds = %162
%170 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 %7)
%171 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 %8)
%172 = fmul x86_fp80 %170, %171
%173 = fadd x86_fp80 %7, %8
%174 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 %173)
%175 = fcmp une x86_fp80 %172, %174
br i1 %175, label %176, label %177
176: ; preds = %169, %162, %155
tail call void @link_failure_pow_x_pow()
br label %177
177: ; preds = %176, %169
ret void
}