user: What is the c source code of the assembly code below?

```asm
<test>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x48,%rsp
  movsd  %xmm0,-0x18(%rbp)
  movsd  %xmm1,-0x20(%rbp)
  movsd  %xmm2,-0x28(%rbp)
  movss  %xmm3,-0x2c(%rbp)
  movss  %xmm4,-0x30(%rbp)
  movss  %xmm5,-0x34(%rbp)
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rbx
  movsd  D70(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %rbx,%xmm6
  ucomisd %xmm0,%xmm6
  jp     L229
  movq   %rbx,%xmm7
  ucomisd %xmm0,%xmm7
  jne    L229
  mov    -0x2c(%rbp),%eax
  movd   %eax,%xmm0
  call   <sqrtf@plt>
  movd   %xmm0,%eax
  movd   %eax,%xmm0
  call   <sqrtf@plt>
  movd   %xmm0,%ebx
  mov    -0x2c(%rbp),%eax
  movss  D26(%rip),%xmm1
  movd   %eax,%xmm0
  call   <powf@plt>
  movd   %ebx,%xmm2
  ucomiss %xmm0,%xmm2
  jp     L229
  movd   %ebx,%xmm3
  ucomiss %xmm0,%xmm3
  jne    L229
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  fstpt  -0x50(%rbp)
  fldt   0xc06(%rip)        # 2010 <_fini+0x314>
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   -0x50(%rbp)
  fucomi %st(1),%st
  jp     L353
  fucomip %st(1),%st
  fstp   %st(0)
  je     L279
  jmp    L229
L353:
  fstp   %st(0)
  fstp   %st(0)
L229:
  call   <link_failure_sqrt_sqrt@plt>
L279:
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  call   <cbrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rbx
  movsd  D12(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %rbx,%xmm4
  ucomisd %xmm0,%xmm4
  jp     L386
  movq   %rbx,%xmm5
  ucomisd %xmm0,%xmm5
  jne    L386
  mov    -0x2c(%rbp),%eax
  movd   %eax,%xmm0
  call   <cbrtf@plt>
  movd   %xmm0,%eax
  movd   %eax,%xmm0
  call   <sqrtf@plt>
  movd   %xmm0,%ebx
  mov    -0x2c(%rbp),%eax
  movss  D40(%rip),%xmm1
  movd   %eax,%xmm0
  call   <powf@plt>
  movd   %ebx,%xmm6
  ucomiss %xmm0,%xmm6
  jp     L386
  movd   %ebx,%xmm7
  ucomiss %xmm0,%xmm7
  jne    L386
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <cbrtl@plt>
  add    $0x10,%rsp
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  fstpt  -0x50(%rbp)
  fldt   0xb31(%rip)        # 2030 <_fini+0x334>
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   -0x50(%rbp)
  fucomi %st(1),%st
  jp     L79
  fucomip %st(1),%st
  fstp   %st(0)
  je     L602
  jmp    L386
L79:
  fstp   %st(0)
  fstp   %st(0)
L386:
  call   <link_failure_sqrt_cbrt@plt>
L602:
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <cbrt@plt>
  movq   %xmm0,%rbx
  movsd  D12(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %rbx,%xmm2
  ucomisd %xmm0,%xmm2
  jp     L321
  movq   %rbx,%xmm3
  ucomisd %xmm0,%xmm3
  jne    L321
  mov    -0x2c(%rbp),%eax
  movd   %eax,%xmm0
  call   <sqrtf@plt>
  movd   %xmm0,%eax
  movd   %eax,%xmm0
  call   <cbrtf@plt>
  movd   %xmm0,%ebx
  mov    -0x2c(%rbp),%eax
  movss  D40(%rip),%xmm1
  movd   %eax,%xmm0
  call   <powf@plt>
  movd   %ebx,%xmm4
  ucomiss %xmm0,%xmm4
  jp     L321
  movd   %ebx,%xmm5
  ucomiss %xmm0,%xmm5
  jne    L321
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <cbrtl@plt>
  add    $0x10,%rsp
  fstpt  -0x50(%rbp)
  fldt   0xa3c(%rip)        # 2030 <_fini+0x334>
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   -0x50(%rbp)
  fucomi %st(1),%st
  jp     L49
  fucomip %st(1),%st
  fstp   %st(0)
  je     L619
  jmp    L321
L49:
  fstp   %st(0)
  fstp   %st(0)
L321:
  call   <link_failure_cbrt_sqrt@plt>
L619:
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbx
  movsd  -0x20(%rbp),%xmm0
  movsd  D19(%rip),%xmm1
  divsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %rbx,%xmm6
  ucomisd %xmm0,%xmm6
  jp     L626
  movq   %rbx,%xmm7
  ucomisd %xmm0,%xmm7
  jne    L626
  mov    -0x2c(%rbp),%eax
  movd   %eax,%xmm0
  call   <sqrtf@plt>
  movd   %xmm0,%eax
  movss  -0x30(%rbp),%xmm0
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <powf@plt>
  movd   %xmm0,%ebx
  movss  -0x30(%rbp),%xmm0
  movss  D4(%rip),%xmm1
  divss  %xmm1,%xmm0
  mov    -0x2c(%rbp),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <powf@plt>
  movd   %ebx,%xmm2
  ucomiss %xmm0,%xmm2
  jp     L626
  movd   %ebx,%xmm3
  ucomiss %xmm0,%xmm3
  jne    L626
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  push   0x28(%rbp)
  push   0x20(%rbp)
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <powl@plt>
  add    $0x20,%rsp
  fstpt  -0x50(%rbp)
  fldt   0x20(%rbp)
  fldt   0x938(%rip)        # 2050 <_fini+0x354>
  fdivrp %st,%st(1)
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   -0x50(%rbp)
  fucomi %st(1),%st
  jp     L411
  fucomip %st(1),%st
  fstp   %st(0)
  je     L278
  jmp    L626
L411:
  fstp   %st(0)
  fstp   %st(0)
L626:
  call   <link_failure_pow_sqrt@plt>
L278:
  movsd  -0x20(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rbx
  movsd  -0x20(%rbp),%xmm0
  movsd  D19(%rip),%xmm1
  divsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %rbx,%xmm4
  ucomisd %xmm0,%xmm4
  jp     L155
  movq   %rbx,%xmm5
  ucomisd %xmm0,%xmm5
  jne    L155
  movss  -0x30(%rbp),%xmm0
  mov    -0x2c(%rbp),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <powf@plt>
  movd   %xmm0,%eax
  movd   %eax,%xmm0
  call   <sqrtf@plt>
  movd   %xmm0,%ebx
  movss  -0x30(%rbp),%xmm0
  movss  D4(%rip),%xmm1
  divss  %xmm1,%xmm0
  mov    -0x2c(%rbp),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <powf@plt>
  movd   %ebx,%xmm6
  ucomiss %xmm0,%xmm6
  jp     L155
  movd   %ebx,%xmm7
  ucomiss %xmm0,%xmm7
  jne    L155
  push   0x28(%rbp)
  push   0x20(%rbp)
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <powl@plt>
  add    $0x20,%rsp
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  fstpt  -0x50(%rbp)
  fldt   0x20(%rbp)
  fldt   0x812(%rip)        # 2050 <_fini+0x354>
  fdivrp %st,%st(1)
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   -0x50(%rbp)
  fucomi %st(1),%st
  jp     L198
  fucomip %st(1),%st
  fstp   %st(0)
  je     L424
  jmp    L155
L198:
  fstp   %st(0)
  fstp   %st(0)
L155:
  call   <link_failure_sqrt_pow@plt>
L424:
  movsd  -0x20(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rax
  movsd  -0x28(%rbp),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbx
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %rbx,%xmm2
  ucomisd %xmm0,%xmm2
  jp     L181
  movq   %rbx,%xmm3
  ucomisd %xmm0,%xmm3
  jne    L181
  movss  -0x30(%rbp),%xmm0
  mov    -0x2c(%rbp),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <powf@plt>
  movd   %xmm0,%eax
  movss  -0x34(%rbp),%xmm0
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <powf@plt>
  movd   %xmm0,%ebx
  movss  -0x30(%rbp),%xmm0
  mulss  -0x34(%rbp),%xmm0
  mov    -0x2c(%rbp),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <powf@plt>
  movd   %ebx,%xmm4
  ucomiss %xmm0,%xmm4
  jp     L181
  movd   %ebx,%xmm5
  ucomiss %xmm0,%xmm5
  jne    L181
  push   0x28(%rbp)
  push   0x20(%rbp)
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <powl@plt>
  add    $0x20,%rsp
  push   0x38(%rbp)
  push   0x30(%rbp)
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <powl@plt>
  add    $0x20,%rsp
  fstpt  -0x50(%rbp)
  fldt   0x20(%rbp)
  fldt   0x30(%rbp)
  fmulp  %st,%st(1)
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   -0x50(%rbp)
  fucomi %st(1),%st
  jp     L120
  fucomip %st(1),%st
  fstp   %st(0)
  je     L377
  jmp    L181
L120:
  fstp   %st(0)
  fstp   %st(0)
L181:
  call   <link_failure_pow_pow@plt>
L377:
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x20(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movapd %xmm0,%xmm6
  mulsd  -0x50(%rbp),%xmm6
  movsd  %xmm6,-0x50(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  -0x50(%rbp),%xmm6
  ucomisd %xmm0,%xmm6
  jp     L423
  ucomisd %xmm0,%xmm6
  jne    L423
  mov    -0x2c(%rbp),%eax
  movd   %eax,%xmm0
  call   <sqrtf@plt>
  movss  %xmm0,-0x50(%rbp)
  mov    -0x30(%rbp),%eax
  movd   %eax,%xmm0
  call   <sqrtf@plt>
  movaps %xmm0,%xmm7
  mulss  -0x50(%rbp),%xmm7
  movss  %xmm7,-0x50(%rbp)
  movss  -0x2c(%rbp),%xmm0
  mulss  -0x30(%rbp),%xmm0
  movd   %xmm0,%eax
  movd   %eax,%xmm0
  call   <sqrtf@plt>
  movss  -0x50(%rbp),%xmm7
  ucomiss %xmm0,%xmm7
  jp     L423
  ucomiss %xmm0,%xmm7
  jne    L423
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  fstpt  -0x50(%rbp)
  push   0x28(%rbp)
  push   0x20(%rbp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  fldt   -0x50(%rbp)
  fmulp  %st,%st(1)
  fstpt  -0x50(%rbp)
  fldt   0x10(%rbp)
  fldt   0x20(%rbp)
  fmulp  %st,%st(1)
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  fldt   -0x50(%rbp)
  fucomi %st(1),%st
  jp     L37
  fucomip %st(1),%st
  fstp   %st(0)
  je     L189
  jmp    L423
L37:
  fstp   %st(0)
  fstp   %st(0)
L423:
  call   <link_failure_root_x_root@plt>
L189:
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  call   <cbrt@plt>
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x20(%rbp),%rax
  movq   %rax,%xmm0
  call   <cbrt@plt>
  movapd %xmm0,%xmm2
  mulsd  -0x50(%rbp),%xmm2
  movsd  %xmm2,-0x50(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <cbrt@plt>
  movsd  -0x50(%rbp),%xmm2
  ucomisd %xmm0,%xmm2
  jp     L309
  ucomisd %xmm0,%xmm2
  jne    L309
  mov    -0x2c(%rbp),%eax
  movd   %eax,%xmm0
  call   <cbrtf@plt>
  movss  %xmm0,-0x50(%rbp)
  mov    -0x30(%rbp),%eax
  movd   %eax,%xmm0
  call   <cbrtf@plt>
  movaps %xmm0,%xmm3
  mulss  -0x50(%rbp),%xmm3
  movss  %xmm3,-0x50(%rbp)
  movss  -0x2c(%rbp),%xmm0
  mulss  -0x30(%rbp),%xmm0
  movd   %xmm0,%eax
  movd   %eax,%xmm0
  call   <cbrtf@plt>
  movss  -0x50(%rbp),%xmm3
  ucomiss %xmm0,%xmm3
  jp     L309
  ucomiss %xmm0,%xmm3
  jne    L309
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <cbrtl@plt>
  add    $0x10,%rsp
  fstpt  -0x50(%rbp)
  push   0x28(%rbp)
  push   0x20(%rbp)
  call   <cbrtl@plt>
  add    $0x10,%rsp
  fldt   -0x50(%rbp)
  fmulp  %st,%st(1)
  fstpt  -0x50(%rbp)
  fldt   0x10(%rbp)
  fldt   0x20(%rbp)
  fmulp  %st,%st(1)
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <cbrtl@plt>
  add    $0x10,%rsp
  fldt   -0x50(%rbp)
  fucomi %st(1),%st
  jp     L187
  fucomip %st(1),%st
  fstp   %st(0)
  je     L255
  jmp    L309
L187:
  fstp   %st(0)
  fstp   %st(0)
L309:
  call   <link_failure_root_x_root@plt>
L255:
  movsd  -0x20(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x28(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movapd %xmm0,%xmm4
  mulsd  -0x50(%rbp),%xmm4
  movsd  %xmm4,-0x50(%rbp)
  movsd  -0x20(%rbp),%xmm0
  addsd  -0x28(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  -0x50(%rbp),%xmm4
  ucomisd %xmm0,%xmm4
  jp     L497
  ucomisd %xmm0,%xmm4
  jne    L497
  movss  -0x30(%rbp),%xmm0
  mov    -0x2c(%rbp),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <powf@plt>
  movss  %xmm0,-0x50(%rbp)
  movss  -0x34(%rbp),%xmm0
  mov    -0x2c(%rbp),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <powf@plt>
  movaps %xmm0,%xmm5
  mulss  -0x50(%rbp),%xmm5
  movss  %xmm5,-0x50(%rbp)
  movss  -0x30(%rbp),%xmm0
  addss  -0x34(%rbp),%xmm0
  mov    -0x2c(%rbp),%eax
  movaps %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <powf@plt>
  movss  -0x50(%rbp),%xmm5
  ucomiss %xmm0,%xmm5
  jp     L497
  ucomiss %xmm0,%xmm5
  jne    L497
  push   0x28(%rbp)
  push   0x20(%rbp)
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <powl@plt>
  add    $0x20,%rsp
  fstpt  -0x50(%rbp)
  push   0x38(%rbp)
  push   0x30(%rbp)
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   -0x50(%rbp)
  fmulp  %st,%st(1)
  fstpt  -0x50(%rbp)
  fldt   0x20(%rbp)
  fldt   0x30(%rbp)
  faddp  %st,%st(1)
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  push   0x18(%rbp)
  push   0x10(%rbp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   -0x50(%rbp)
  fucomi %st(1),%st
  jp     L573
  fucomip %st(1),%st
  fstp   %st(0)
  je     L400
  jmp    L497
L573:
  fstp   %st(0)
  fstp   %st(0)
L497:
  call   <link_failure_pow_x_pow@plt>
L400:
  nop
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

tool_calls: name: read_data
arguments: data_tag: D70
type_guessed: byte[8]
name: read_data
arguments: data_tag: D26
type_guessed: byte[4]
name: read_data
arguments: data_tag: D12
type_guessed: byte[8]
name: read_data
arguments: data_tag: D40
type_guessed: byte[4]
name: read_data
arguments: data_tag: D19
type_guessed: byte[8]
name: read_data
arguments: data_tag: D4
type_guessed: byte[4]

tool: {"D70": [0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0x3f]}

tool: {"D26": [0x00,0x00,0x80,0x3e]}

tool: {"D12": [0x55,0x55,0x55,0x55,0x55,0x55,0xc5,0x3f]}

tool: {"D40": [0xab,0xaa,0x2a,0x3e]}

tool: {"D19": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40]}

tool: {"D4": [0x00,0x00,0x00,0x40]}

assistant: ```c
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();
}
```