#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_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    $0x190,%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   1120 <sqrt@plt>
call   1120 <sqrt@plt>
movsd  %xmm0,-0x68(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xda4(%rip),%xmm1
call   1110 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x68(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jne    12fe <test+0xfe>
jp     12fe <test+0xfe>
movss  -0x1c(%rbp),%xmm0
call   10b0 <sqrtf@plt>
call   10b0 <sqrtf@plt>
movss  %xmm0,-0x6c(%rbp)
movss  -0x1c(%rbp),%xmm0
movss  0xd7e(%rip),%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0x6c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jne    12fe <test+0xfe>
jp     12fe <test+0xfe>
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   10a0 <sqrtl@plt>
mov    %rsp,%rax
fstpt  (%rax)
call   10a0 <sqrtl@plt>
fstpt  -0x78(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
flds   0xd3c(%rip)
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fldt   -0x78(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    12fe <test+0xfe>
jp     12fe <test+0xfe>
jmp    1303 <test+0x103>
call   1050 <link_failure_sqrt_sqrt@plt>
movsd  -0x8(%rbp),%xmm0
call   10e0 <cbrt@plt>
call   1120 <sqrt@plt>
movsd  %xmm0,-0x80(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xce4(%rip),%xmm1
call   1110 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x80(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jne    13d2 <test+0x1d2>
jp     13d2 <test+0x1d2>
movss  -0x1c(%rbp),%xmm0
call   1080 <cbrtf@plt>
call   10b0 <sqrtf@plt>
movss  %xmm0,-0x84(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
movss  0xcb7(%rip),%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0x84(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    13d2 <test+0x1d2>
jp     13d2 <test+0x1d2>
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1070 <cbrtl@plt>
mov    %rsp,%rax
fstpt  (%rax)
call   10a0 <sqrtl@plt>
fstpt  -0x90(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fldt   0xc83(%rip)
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fldt   -0x90(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    13d2 <test+0x1d2>
jp     13d2 <test+0x1d2>
jmp    13d7 <test+0x1d7>
call   1100 <link_failure_sqrt_cbrt@plt>
movsd  -0x8(%rbp),%xmm0
call   1120 <sqrt@plt>
call   10e0 <cbrt@plt>
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  0xc0d(%rip),%xmm1
call   1110 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x98(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jne    14ac <test+0x2ac>
jp     14ac <test+0x2ac>
movss  -0x1c(%rbp),%xmm0
call   10b0 <sqrtf@plt>
call   1080 <cbrtf@plt>
movss  %xmm0,-0x9c(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
movss  0xbdd(%rip),%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0x9c(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    14ac <test+0x2ac>
jp     14ac <test+0x2ac>
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   10a0 <sqrtl@plt>
mov    %rsp,%rax
fstpt  (%rax)
call   1070 <cbrtl@plt>
fstpt  -0xa8(%rbp)
fldt   -0x40(%rbp)
mov    %rsp,%rax
fldt   0xba9(%rip)
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fldt   -0xa8(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    14ac <test+0x2ac>
jp     14ac <test+0x2ac>
jmp    14b1 <test+0x2b1>
call   1090 <link_failure_cbrt_sqrt@plt>
movsd  -0x8(%rbp),%xmm0
call   1120 <sqrt@plt>
movsd  -0x10(%rbp),%xmm1
call   1110 <pow@plt>
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
movsd  0xb31(%rip),%xmm2
divsd  %xmm2,%xmm1
call   1110 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xb0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jne    15ad <test+0x3ad>
jp     15ad <test+0x3ad>
movss  -0x1c(%rbp),%xmm0
call   10b0 <sqrtf@plt>
movss  -0x20(%rbp),%xmm1
call   1040 <powf@plt>
movss  %xmm0,-0xb4(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm1
movss  0xaef(%rip),%xmm2
divss  %xmm2,%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0xb4(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    15ad <test+0x3ad>
jp     15ad <test+0x3ad>
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   10a0 <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   0xa9d(%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    15ad <test+0x3ad>
jp     15ad <test+0x3ad>
jmp    15b2 <test+0x3b2>
call   10f0 <link_failure_pow_sqrt@plt>
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
call   1110 <pow@plt>
movsd  -0x18(%rbp),%xmm1
call   1110 <pow@plt>
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
call   1110 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0xc8(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jne    16ad <test+0x4ad>
jp     16ad <test+0x4ad>
movss  -0x1c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm1
call   1040 <powf@plt>
movss  -0x24(%rbp),%xmm1
call   1040 <powf@plt>
movss  %xmm0,-0xcc(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm1
mulss  -0x24(%rbp),%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0xcc(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    16ad <test+0x4ad>
jp     16ad <test+0x4ad>
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  -0xd8(%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   -0xd8(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    16ad <test+0x4ad>
jp     16ad <test+0x4ad>
jmp    16b2 <test+0x4b2>
call   10c0 <link_failure_pow_pow@plt>
movsd  -0x8(%rbp),%xmm0
call   1120 <sqrt@plt>
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
call   1120 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0xe8(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
mulsd  -0x10(%rbp),%xmm0
call   1120 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0xe0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jne    17c6 <test+0x5c6>
jp     17c6 <test+0x5c6>
movss  -0x1c(%rbp),%xmm0
call   10b0 <sqrtf@plt>
movss  %xmm0,-0xf0(%rbp)
ff
movss  -0x20(%rbp),%xmm0
call   10b0 <sqrtf@plt>
movaps %xmm0,%xmm1
movss  -0xf0(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0xec(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
mulss  -0x20(%rbp),%xmm0
call   10b0 <sqrtf@plt>
movaps %xmm0,%xmm1
movss  -0xec(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    17c6 <test+0x5c6>
jp     17c6 <test+0x5c6>
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   10a0 <sqrtl@plt>
fstpt  -0x108(%rbp)
fldt   -0x50(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   10a0 <sqrtl@plt>
fldt   -0x108(%rbp)
fmulp  %st,%st(1)
fstpt  -0xfc(%rbp)
fldt   -0x40(%rbp)
fldt   -0x50(%rbp)
fmulp  %st,%st(1)
mov    %rsp,%rax
fstpt  (%rax)
call   10a0 <sqrtl@plt>
fldt   -0xfc(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    17c6 <test+0x5c6>
jp     17c6 <test+0x5c6>
jmp    17cb <test+0x5cb>
call   10d0 <link_failure_root_x_root@plt>
movsd  -0x8(%rbp),%xmm0
call   10e0 <cbrt@plt>
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
call   10e0 <cbrt@plt>
movaps %xmm0,%xmm1
movsd  -0x118(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
mulsd  -0x10(%rbp),%xmm0
call   10e0 <cbrt@plt>
movaps %xmm0,%xmm1
movsd  -0x110(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jne    18df <test+0x6df>
jp     18df <test+0x6df>
movss  -0x1c(%rbp),%xmm0
call   1080 <cbrtf@plt>
movss  %xmm0,-0x120(%rbp)
ff
movss  -0x20(%rbp),%xmm0
call   1080 <cbrtf@plt>
movaps %xmm0,%xmm1
movss  -0x120(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x11c(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
mulss  -0x20(%rbp),%xmm0
call   1080 <cbrtf@plt>
movaps %xmm0,%xmm1
movss  -0x11c(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    18df <test+0x6df>
jp     18df <test+0x6df>
fldt   -0x40(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1070 <cbrtl@plt>
fstpt  -0x138(%rbp)
fldt   -0x50(%rbp)
mov    %rsp,%rax
fstpt  (%rax)
call   1070 <cbrtl@plt>
fldt   -0x138(%rbp)
fmulp  %st,%st(1)
fstpt  -0x12c(%rbp)
fldt   -0x40(%rbp)
fldt   -0x50(%rbp)
fmulp  %st,%st(1)
mov    %rsp,%rax
fstpt  (%rax)
call   1070 <cbrtl@plt>
fldt   -0x12c(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    18df <test+0x6df>
jp     18df <test+0x6df>
jmp    18e4 <test+0x6e4>
call   10d0 <link_failure_root_x_root@plt>
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
call   1110 <pow@plt>
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm1
call   1110 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x148(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
addsd  -0x18(%rbp),%xmm1
call   1110 <pow@plt>
movaps %xmm0,%xmm1
movsd  -0x140(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jne    1a28 <test+0x828>
jp     1a28 <test+0x828>
movss  -0x1c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm1
call   1040 <powf@plt>
movss  %xmm0,-0x150(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
movss  -0x24(%rbp),%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0x150(%rbp),%xmm0
ff
mulss  %xmm1,%xmm0
movss  %xmm0,-0x14c(%rbp)
ff
movss  -0x1c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm1
addss  -0x24(%rbp),%xmm1
call   1040 <powf@plt>
movaps %xmm0,%xmm1
movss  -0x14c(%rbp),%xmm0
ff
ucomiss %xmm1,%xmm0
jne    1a28 <test+0x828>
jp     1a28 <test+0x828>
fldt   -0x40(%rbp)
fldt   -0x50(%rbp)
mov    %rsp,%rax
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fstpt  -0x168(%rbp)
fldt   -0x40(%rbp)
fldt   -0x60(%rbp)
mov    %rsp,%rax
fstpt  0x10(%rax)
fstpt  (%rax)
call   1030 <powl@plt>
fldt   -0x168(%rbp)
fmulp  %st,%st(1)
fstpt  -0x15c(%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   -0x15c(%rbp)
fucomip %st(1),%st
fstp   %st(0)
jne    1a28 <test+0x828>
jp     1a28 <test+0x828>
jmp    1a2d <test+0x82d>
call   1060 <link_failure_pow_x_pow@plt>
add    $0x190,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<test>:
sub    $0xa8,%rsp
movss  %xmm5,0x74(%rsp)
movss  %xmm4,0x2c(%rsp)
movss  %xmm3,0x28(%rsp)
movsd  %xmm2,0x90(%rsp)
movsd  %xmm1,0x68(%rsp)
fldt   0xd0(%rsp)
fstpt  0x9c(%rsp)
fldt   0xc0(%rsp)
fstpt  0x84(%rsp)
fldt   0xb0(%rsp)
fstpt  0x5c(%rsp)
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
movsd  %xmm0,0x40(%rsp)
jb     1270 <test+0x70>
sqrtsd %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jae    127f <test+0x7f>
call   1120 <sqrt@plt>
jmp    1283 <test+0x83>
call   1120 <sqrt@plt>
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1269 <test+0x69>
sqrtsd %xmm0,%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x40(%rsp),%xmm0
movsd  0xd69(%rip),%xmm1
call   1110 <pow@plt>
movsd  0x50(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    1342 <test+0x142>
jp     1342 <test+0x142>
xorpd  %xmm1,%xmm1
movss  0x28(%rsp),%xmm0
ucomiss %xmm1,%xmm0
jb     12d1 <test+0xd1>
sqrtss %xmm0,%xmm0
ucomiss %xmm1,%xmm0
jae    12de <test+0xde>
call   10b0 <sqrtf@plt>
jmp    12e2 <test+0xe2>
call   10b0 <sqrtf@plt>
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     12ca <test+0xca>
sqrtss %xmm0,%xmm0
movss  %xmm0,0x50(%rsp)
movss  0x28(%rsp),%xmm0
movss  0xd22(%rip),%xmm1
call   1040 <powf@plt>
movss  0x50(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    1342 <test+0x142>
jp     1342 <test+0x142>
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   10a0 <sqrtl@plt>
fstpt  (%rsp)
call   10a0 <sqrtl@plt>
fstpt  0x50(%rsp)
flds   0xcf2(%rip)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fldt   0x50(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    1342 <test+0x142>
jnp    1347 <test+0x147>
call   1050 <link_failure_sqrt_sqrt@plt>
movsd  0x40(%rsp),%xmm0
call   10e0 <cbrt@plt>
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
movsd  %xmm0,0x50(%rsp)
jb     1367 <test+0x167>
sqrtsd %xmm0,%xmm0
jmp    136c <test+0x16c>
call   1120 <sqrt@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0x40(%rsp),%xmm0
movsd  0xc88(%rip),%xmm1
call   1110 <pow@plt>
movsd  0x30(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    1416 <test+0x216>
jp     1416 <test+0x216>
movss  0x28(%rsp),%xmm0
call   1080 <cbrtf@plt>
xorpd  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     13b1 <test+0x1b1>
sqrtss %xmm0,%xmm0
jmp    13b6 <test+0x1b6>
call   10b0 <sqrtf@plt>
movss  %xmm0,0x30(%rsp)
movss  0xc58(%rip),%xmm1
movss  0x28(%rsp),%xmm0
call   1040 <powf@plt>
movss  0x30(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    1416 <test+0x216>
jp     1416 <test+0x216>
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1070 <cbrtl@plt>
fstpt  (%rsp)
call   10a0 <sqrtl@plt>
fstpt  0x30(%rsp)
fldt   0xc36(%rip)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fldt   0x30(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    1416 <test+0x216>
jnp    141b <test+0x21b>
call   1100 <link_failure_sqrt_cbrt@plt>
xorps  %xmm0,%xmm0
movsd  0x40(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jb     1433 <test+0x233>
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
jmp    143c <test+0x23c>
movapd %xmm1,%xmm0
call   1120 <sqrt@plt>
call   10e0 <cbrt@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0xbb9(%rip),%xmm1
movsd  0x40(%rsp),%xmm0
call   1110 <pow@plt>
movsd  0x30(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    14f5 <test+0x2f5>
jp     14f5 <test+0x2f5>
xorpd  %xmm0,%xmm0
movss  0x28(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jb     1488 <test+0x288>
xorps  %xmm0,%xmm0
sqrtss %xmm1,%xmm0
jmp    1490 <test+0x290>
movaps %xmm1,%xmm0
call   10b0 <sqrtf@plt>
call   1080 <cbrtf@plt>
movss  %xmm0,0x30(%rsp)
movss  0xb79(%rip),%xmm1
movss  0x28(%rsp),%xmm0
call   1040 <powf@plt>
movss  0x30(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    14f5 <test+0x2f5>
jp     14f5 <test+0x2f5>
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   10a0 <sqrtl@plt>
fstpt  (%rsp)
call   1070 <cbrtl@plt>
fstpt  0x30(%rsp)
fldt   0xb57(%rip)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fldt   0x30(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    14f5 <test+0x2f5>
jnp    14fa <test+0x2fa>
call   1090 <link_failure_cbrt_sqrt@plt>
xorps  %xmm0,%xmm0
movsd  0x40(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jb     1512 <test+0x312>
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
jmp    151b <test+0x31b>
movapd %xmm1,%xmm0
call   1120 <sqrt@plt>
movsd  0x68(%rsp),%xmm1
call   1110 <pow@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0xadc(%rip),%xmm1
mulsd  0x68(%rsp),%xmm1
movsd  0x40(%rsp),%xmm0
call   1110 <pow@plt>
movsd  0x30(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    15fe <test+0x3fe>
jp     15fe <test+0x3fe>
xorpd  %xmm0,%xmm0
movss  0x28(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jb     1573 <test+0x373>
xorps  %xmm0,%xmm0
sqrtss %xmm1,%xmm0
jmp    157b <test+0x37b>
movaps %xmm1,%xmm0
call   10b0 <sqrtf@plt>
movss  0x2c(%rsp),%xmm1
call   1040 <powf@plt>
movss  %xmm0,0x30(%rsp)
movss  0xa8c(%rip),%xmm1
mulss  0x2c(%rsp),%xmm1
movss  0x28(%rsp),%xmm0
call   1040 <powf@plt>
movss  0x30(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    15fe <test+0x3fe>
jp     15fe <test+0x3fe>
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   10a0 <sqrtl@plt>
fldt   0x84(%rsp)
fstpt  0x10(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fstpt  0x30(%rsp)
fldt   0x84(%rsp)
fmuls  0xa3e(%rip)
fstpt  0x10(%rsp)
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1030 <powl@plt>
fldt   0x30(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    15fe <test+0x3fe>
jnp    1603 <test+0x403>
call   10f0 <link_failure_pow_sqrt@plt>
movsd  0x40(%rsp),%xmm0
movsd  0x68(%rsp),%xmm1
call   1110 <pow@plt>
movsd  0x90(%rsp),%xmm1
call   1110 <pow@plt>
movsd  %xmm0,0x30(%rsp)
movsd  0x68(%rsp),%xmm1
mulsd  0x90(%rsp),%xmm1
movsd  0x40(%rsp),%xmm0
call   1110 <pow@plt>
movsd  0x30(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    16f8 <test+0x4f8>
jp     16f8 <test+0x4f8>
movss  0x28(%rsp),%xmm0
movss  0x2c(%rsp),%xmm1
call   1040 <powf@plt>
movss  0x74(%rsp),%xmm1
call   1040 <powf@plt>
movss  %xmm0,0x30(%rsp)
movss  0x2c(%rsp),%xmm1
mulss  0x74(%rsp),%xmm1
movss  0x28(%rsp),%xmm0
call   1040 <powf@plt>
movss  0x30(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    16f8 <test+0x4f8>
jp     16f8 <test+0x4f8>
fldt   0x84(%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   0x84(%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    16f8 <test+0x4f8>
jnp    16fd <test+0x4fd>
call   10c0 <link_failure_pow_pow@plt>
xorps  %xmm1,%xmm1
movsd  0x40(%rsp),%xmm0
ucomisd %xmm1,%xmm0
jb     1712 <test+0x512>
sqrtsd %xmm0,%xmm2
jmp    171e <test+0x51e>
call   1120 <sqrt@plt>
xorps  %xmm1,%xmm1
movapd %xmm0,%xmm2
movsd  0x68(%rsp),%xmm0
ucomisd %xmm1,%xmm0
jb     1734 <test+0x534>
movapd %xmm0,%xmm3
sqrtsd %xmm0,%xmm0
jmp    174b <test+0x54b>
movsd  %xmm2,0x78(%rsp)
call   1120 <sqrt@plt>
movsd  0x68(%rsp),%xmm3
movsd  0x78(%rsp),%xmm2
movsd  0x40(%rsp),%xmm1
mulsd  %xmm0,%xmm2
mulsd  %xmm3,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
movsd  %xmm1,0x30(%rsp)
jb     1772 <test+0x572>
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
jmp    1787 <test+0x587>
movapd %xmm1,%xmm0
movsd  %xmm2,0x78(%rsp)
call   1120 <sqrt@plt>
movsd  0x78(%rsp),%xmm2
ucomisd %xmm0,%xmm2
jne    1866 <test+0x666>
jp     1866 <test+0x666>
xorpd  %xmm1,%xmm1
movss  0x28(%rsp),%xmm0
ucomiss %xmm1,%xmm0
jb     17af <test+0x5af>
xorps  %xmm2,%xmm2
sqrtss %xmm0,%xmm2
jmp    17ba <test+0x5ba>
call   10b0 <sqrtf@plt>
xorps  %xmm1,%xmm1
movaps %xmm0,%xmm2
movss  0x2c(%rsp),%xmm0
ucomiss %xmm1,%xmm0
jb     17ce <test+0x5ce>
movaps %xmm0,%xmm3
sqrtss %xmm0,%xmm0
jmp    17e5 <test+0x5e5>
movss  %xmm2,0x78(%rsp)
call   10b0 <sqrtf@plt>
movss  0x2c(%rsp),%xmm3
movss  0x78(%rsp),%xmm2
movss  0x28(%rsp),%xmm1
mulss  %xmm0,%xmm2
movaps %xmm1,%xmm0
mulss  %xmm3,%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jb     1804 <test+0x604>
sqrtss %xmm0,%xmm0
jmp    1815 <test+0x615>
movss  %xmm2,0x78(%rsp)
call   10b0 <sqrtf@plt>
movss  0x78(%rsp),%xmm2
ucomiss %xmm0,%xmm2
jne    1866 <test+0x666>
jp     1866 <test+0x666>
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   10a0 <sqrtl@plt>
fstpt  0x78(%rsp)
fldt   0x84(%rsp)
fstpt  (%rsp)
call   10a0 <sqrtl@plt>
fldt   0x78(%rsp)
fmulp  %st,%st(1)
fstpt  0x78(%rsp)
fldt   0x5c(%rsp)
fldt   0x84(%rsp)
fmulp  %st,%st(1)
fstpt  (%rsp)
call   10a0 <sqrtl@plt>
fldt   0x78(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    1866 <test+0x666>
jnp    186b <test+0x66b>
call   10d0 <link_failure_root_x_root@plt>
movsd  0x68(%rsp),%xmm0
call   10e0 <cbrt@plt>
movsd  0x50(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x50(%rsp)
movsd  0x30(%rsp),%xmm0
call   10e0 <cbrt@plt>
movsd  0x50(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    1937 <test+0x737>
jp     1937 <test+0x737>
movss  0x28(%rsp),%xmm0
call   1080 <cbrtf@plt>
movss  %xmm0,0x50(%rsp)
movss  0x2c(%rsp),%xmm0
call   1080 <cbrtf@plt>
mulss  0x50(%rsp),%xmm0
movss  %xmm0,0x50(%rsp)
movss  0x28(%rsp),%xmm0
mulss  0x2c(%rsp),%xmm0
call   1080 <cbrtf@plt>
movss  0x50(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    1937 <test+0x737>
jp     1937 <test+0x737>
fldt   0x5c(%rsp)
fstpt  (%rsp)
call   1070 <cbrtl@plt>
fstpt  0x50(%rsp)
fldt   0x84(%rsp)
fstpt  (%rsp)
call   1070 <cbrtl@plt>
fldt   0x50(%rsp)
fmulp  %st,%st(1)
fstpt  0x50(%rsp)
fldt   0x5c(%rsp)
fldt   0x84(%rsp)
fmulp  %st,%st(1)
fstpt  (%rsp)
call   1070 <cbrtl@plt>
fldt   0x50(%rsp)
fucomip %st(1),%st
fstp   %st(0)
jne    1937 <test+0x737>
jnp    193c <test+0x73c>
call   10d0 <link_failure_root_x_root@plt>
movsd  0x40(%rsp),%xmm0
movsd  0x68(%rsp),%xmm1
call   1110 <pow@plt>
movsd  %xmm0,0x50(%rsp)
movsd  0x40(%rsp),%xmm0
movsd  0x90(%rsp),%xmm1
call   1110 <pow@plt>
mulsd  0x50(%rsp),%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x68(%rsp),%xmm1
addsd  0x90(%rsp),%xmm1
movsd  0x40(%rsp),%xmm0
call   1110 <pow@plt>
movsd  0x50(%rsp),%xmm1
ucomisd %xmm0,%xmm1
jne    1a63 <test+0x863>
jp     1a63 <test+0x863>
movss  0x28(%rsp),%xmm0
movss  0x2c(%rsp),%xmm1
call   1040 <powf@plt>
movss  %xmm0,0x40(%rsp)
movss  0x28(%rsp),%xmm0
movss  0x74(%rsp),%xmm1
call   1040 <powf@plt>
mulss  0x40(%rsp),%xmm0
movss  %xmm0,0x40(%rsp)
movss  0x2c(%rsp),%xmm1
addss  0x74(%rsp),%xmm1
movss  0x28(%rsp),%xmm0
call   1040 <powf@plt>
movss  0x40(%rsp),%xmm1
ucomiss %xmm0,%xmm1
jne    1a63 <test+0x863>
jp     1a63 <test+0x863>
fldt   0x84(%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   0x84(%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    1a63 <test+0x863>
jnp    1a6f <test+0x86f>
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 = load double, double* %12
%120 = call double @pow(double %118, double %119)
%121 = load double, double* %10
%122 = load double, double* %11
%123 = load double, double* %12
%124 = fmul double %122, %123
%125 = call double @pow(double %121, double %124)
%126 = fcmp une double %120, %125
br i1 %126, label %151, label %127
127: ; preds = %115
%128 = load float, float* %13
%129 = load float, float* %14
%130 = call float @powf(float %128, float %129)
%131 = load float, float* %15
%132 = call float @powf(float %130, float %131)
%133 = load float, float* %13
%134 = load float, float* %14
%135 = load float, float* %15
%136 = fmul float %134, %135
%137 = call float @powf(float %133, float %136)
%138 = fcmp une float %132, %137
br i1 %138, label %151, label %139
139: ; preds = %127
%140 = load x86_fp80, x86_fp80* %16
%141 = load x86_fp80, x86_fp80* %17
%142 = call x86_fp80 @powl(x86_fp80 %140, x86_fp80 %141)
%143 = load x86_fp80, x86_fp80* %18
%144 = call x86_fp80 @powl(x86_fp80 %142, x86_fp80 %143)
%145 = load x86_fp80, x86_fp80* %16
%146 = load x86_fp80, x86_fp80* %17
%147 = load x86_fp80, x86_fp80* %18
%148 = fmul x86_fp80 %146, %147
%149 = call x86_fp80 @powl(x86_fp80 %145, x86_fp80 %148)
%150 = fcmp une x86_fp80 %144, %149
br i1 %150, label %151, label %152
151: ; preds = %139, %127, %115
br label %152
152: ; preds = %151, %139
%153 = load double, double* %10
%154 = call double @sqrt(double %153)
%155 = load double, double* %11
%156 = call double @sqrt(double %155)
%157 = fmul double %154, %156
%158 = load double, double* %10
%159 = load double, double* %11
%160 = fmul double %158, %159
%161 = call double @sqrt(double %160)
%162 = fcmp une double %157, %161
br i1 %162, label %185, label %163
163: ; preds = %152
%164 = load float, float* %13
%165 = call float @sqrtf(float %164)
%166 = load float, float* %14
%167 = call float @sqrtf(float %166)
%168 = fmul float %165, %167
%169 = load float, float* %13
%170 = load float, float* %14
%171 = fmul float %169, %170
%172 = call float @sqrtf(float %171)
%173 = fcmp une float %168, %172
br i1 %173, label %185, label %174
174: ; preds = %163
%175 = load x86_fp80, x86_fp80* %16
%176 = call x86_fp80 @sqrtl(x86_fp80 %175)
%177 = load x86_fp80, x86_fp80* %17
%178 = call x86_fp80 @sqrtl(x86_fp80 %177)
%179 = fmul x86_fp80 %176, %178
%180 = load x86_fp80, x86_fp80* %16
%181 = load x86_fp80, x86_fp80* %17
%182 = fmul x86_fp80 %180, %181
%183 = call x86_fp80 @sqrtl(x86_fp80 %182)
%184 = fcmp une x86_fp80 %179, %183
br i1 %184, label %185, label %186
185: ; preds = %174, %163, %152
br label %186
186: ; preds = %185, %174
%187 = load double, double* %10
%188 = call double @cbrt(double %187)
%189 = load double, double* %11
%190 = call double @cbrt(double %189)
%191 = fmul double %188, %190
%192 = load double, double* %10
%193 = load double, double* %11
%194 = fmul double %192, %193
%195 = call double @cbrt(double %194)
%196 = fcmp une double %191, %195
br i1 %196, label %219, label %197
197: ; preds = %186
%198 = load float, float* %13
%199 = call float @cbrtf(float %198)
%200 = load float, float* %14
%201 = call float @cbrtf(float %200)
%202 = fmul float %199, %201
%203 = load float, float* %13
%204 = load float, float* %14
%205 = fmul float %203, %204
%206 = call float @cbrtf(float %205)
%207 = fcmp une float %202, %206
br i1 %207, label %219, label %208
208: ; preds = %197
%209 = load x86_fp80, x86_fp80* %16
%210 = call x86_fp80 @cbrtl(x86_fp80 %209)
%211 = load x86_fp80, x86_fp80* %17
%212 = call x86_fp80 @cbrtl(x86_fp80 %211)
%213 = fmul x86_fp80 %210, %212
%214 = load x86_fp80, x86_fp80* %16
%215 = load x86_fp80, x86_fp80* %17
%216 = fmul x86_fp80 %214, %215
%217 = call x86_fp80 @cbrtl(x86_fp80 %216)
%218 = fcmp une x86_fp80 %213, %217
br i1 %218, label %219, label %220
219: ; preds = %208, %197, %186
br label %220
220: ; preds = %219, %208
%221 = load double, double* %10
%222 = load double, double* %11
%223 = call double @pow(double %221, double %222)
%224 = load double, double* %10
%225 = load double, double* %12
%226 = call double @pow(double %224, double %225)
%227 = fmul double %223, %226
%228 = load double, double* %10
%229 = load double, double* %11
%230 = load double, double* %12
%231 = fadd double %229, %230
%232 = call double @pow(double %228, double %231)
%233 = fcmp une double %227, %232
br i1 %233, label %262, label %234
234: ; preds = %220
%235 = load float, float* %13
%236 = load float, float* %14
%237 = call float @powf(float %235, float %236)
%238 = load float, float* %13
%239 = load float, float* %15
%240 = call float @powf(float %238, float %239)
%241 = fmul float %237, %240
%242 = load float, float* %13
%243 = load float, float* %14
%244 = load float, float* %15
%245 = fadd float %243, %244
%246 = call float @powf(float %242, float %245)
%247 = fcmp une float %241, %246
br i1 %247, label %262, label %248
248: ; preds = %234
%249 = load x86_fp80, x86_fp80* %16
%250 = load x86_fp80, x86_fp80* %17
%251 = call x86_fp80 @powl(x86_fp80 %249, x86_fp80 %250)
%252 = load x86_fp80, x86_fp80* %16
%253 = load x86_fp80, x86_fp80* %18
%254 = call x86_fp80 @powl(x86_fp80 %252, x86_fp80 %253)
%255 = fmul x86_fp80 %251, %254
%256 = load x86_fp80, x86_fp80* %16
%257 = load x86_fp80, x86_fp80* %17
%258 = load x86_fp80, x86_fp80* %18
%259 = fadd x86_fp80 %257, %258
%260 = call x86_fp80 @powl(x86_fp80 %256, x86_fp80 %259)
%261 = fcmp une x86_fp80 %255, %260
br i1 %261, label %262, label %263
262: ; preds = %248, %234, %220
br label %263
263: ; preds = %262, %248
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 @pow(double %77, double %2)
%79 = fmul double %1, %2
%80 = tail call double @pow(double %0, double %79)
%81 = fcmp une double %78, %80
br i1 %81, label %94, label %82
82: ; preds = %76
%83 = tail call float @powf(float %3, float %4)
%84 = tail call float @powf(float %83, float %5)
%85 = fmul float %4, %5
%86 = tail call float @powf(float %3, float %85)
%87 = fcmp une float %84, %86
br i1 %87, label %94, label %88
88: ; preds = %82
%89 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 %7)
%90 = tail call x86_fp80 @powl(x86_fp80 %89, x86_fp80 %8)
%91 = fmul x86_fp80 %7, %8
%92 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 %91)
%93 = fcmp une x86_fp80 %90, %92
br i1 %93, label %94, label %95
94: ; preds = %88, %82, %76
tail call void @link_failure_pow_pow()
br label %95
95: ; preds = %94, %88
%96 = tail call double @sqrt(double %0)
%97 = tail call double @sqrt(double %1)
%98 = fmul double %96, %97
%99 = fmul double %0, %1
%100 = tail call double @sqrt(double %99)
%101 = fcmp une double %98, %100
br i1 %101, label %116, label %102
102: ; preds = %95
%103 = tail call float @sqrtf(float %3)
%104 = tail call float @sqrtf(float %4)
%105 = fmul float %103, %104
%106 = fmul float %3, %4
%107 = tail call float @sqrtf(float %106)
%108 = fcmp une float %105, %107
br i1 %108, label %116, label %109
109: ; preds = %102
%110 = tail call x86_fp80 @sqrtl(x86_fp80 %6)
%111 = tail call x86_fp80 @sqrtl(x86_fp80 %7)
%112 = fmul x86_fp80 %110, %111
%113 = fmul x86_fp80 %6, %7
%114 = tail call x86_fp80 @sqrtl(x86_fp80 %113)
%115 = fcmp une x86_fp80 %112, %114
br i1 %115, label %116, label %117
116: ; preds = %109, %102, %95
tail call void @link_failure_root_x_root()
br label %117
117: ; preds = %116, %109
%118 = tail call double @cbrt(double %1)
%119 = fmul double %26, %118
%120 = tail call double @cbrt(double %99)
%121 = fcmp une double %119, %120
br i1 %121, label %136, label %122
122: ; preds = %117
%123 = tail call float @cbrtf(float %3)
%124 = tail call float @cbrtf(float %4)
%125 = fmul float %123, %124
%126 = fmul float %3, %4
%127 = tail call float @cbrtf(float %126)
%128 = fcmp une float %125, %127
br i1 %128, label %136, label %129
129: ; preds = %122
%130 = tail call x86_fp80 @cbrtl(x86_fp80 %6)
%131 = tail call x86_fp80 @cbrtl(x86_fp80 %7)
%132 = fmul x86_fp80 %130, %131
%133 = fmul x86_fp80 %6, %7
%134 = tail call x86_fp80 @cbrtl(x86_fp80 %133)
%135 = fcmp une x86_fp80 %132, %134
br i1 %135, label %136, label %137
136: ; preds = %129, %122, %117
tail call void @link_failure_root_x_root()
br label %137
137: ; preds = %136, %129
%138 = tail call double @pow(double %0, double %1)
%139 = tail call double @pow(double %0, double %2)
%140 = fmul double %138, %139
%141 = fadd double %1, %2
%142 = tail call double @pow(double %0, double %141)
%143 = fcmp une double %140, %142
br i1 %143, label %158, label %144
144: ; preds = %137
%145 = tail call float @powf(float %3, float %4)
%146 = tail call float @powf(float %3, float %5)
%147 = fmul float %145, %146
%148 = fadd float %4, %5
%149 = tail call float @powf(float %3, float %148)
%150 = fcmp une float %147, %149
br i1 %150, label %158, label %151
151: ; preds = %144
%152 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 %7)
%153 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 %8)
%154 = fmul x86_fp80 %152, %153
%155 = fadd x86_fp80 %7, %8
%156 = tail call x86_fp80 @powl(x86_fp80 %6, x86_fp80 %155)
%157 = fcmp une x86_fp80 %154, %156
br i1 %157, label %158, label %159
158: ; preds = %151, %144, %137
tail call void @link_failure_pow_x_pow()
br label %159
159: ; preds = %158, %151
ret void
}