user: What would the C source look like for the assembly code provided here?

```asm
<test>:
  endbr64
  push   %r14
  push   %rbx
  sub    $0x78,%rsp
  movapd %xmm0,%xmm7
  movsd  %xmm0,(%rsp)
  movsd  %xmm1,0x10(%rsp)
  movsd  %xmm2,0x30(%rsp)
  movss  %xmm3,0x2c(%rsp)
  movss  %xmm4,0x38(%rsp)
  movss  %xmm5,0x3c(%rsp)
  pxor   %xmm0,%xmm0
  ucomisd %xmm7,%xmm0
  ja     L1080
  sqrtsd %xmm7,%xmm7
  movapd %xmm7,%xmm0
L595:
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L762
  sqrtsd %xmm0,%xmm0
  movsd  %xmm0,0x40(%rsp)
L535:
  movsd  D82(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  0x40(%rsp),%xmm4
  ucomisd %xmm4,%xmm0
  jp     L1008
  jne    L1008
  pxor   %xmm0,%xmm0
  movss  0x2c(%rsp),%xmm4
  ucomiss %xmm4,%xmm0
  ja     L864
  sqrtss %xmm4,%xmm4
  movaps %xmm4,%xmm0
L710:
  pxor   %xmm1,%xmm1
  ucomiss %xmm0,%xmm1
  ja     L870
  sqrtss %xmm0,%xmm0
  movss  %xmm0,0x40(%rsp)
L873:
  movss  D59(%rip),%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <powf@plt>
  movss  0x40(%rsp),%xmm5
  ucomiss %xmm5,%xmm0
  jp     L1008
  je     L84
L1008:
  call   <link_failure_sqrt_sqrt@plt>
L331:
  movsd  (%rsp),%xmm0
  call   <cbrt@plt>
  movapd %xmm0,%xmm2
  movsd  %xmm0,0x40(%rsp)
  pxor   %xmm0,%xmm0
  ucomisd %xmm2,%xmm0
  ja     L16
  sqrtsd %xmm2,%xmm2
  movsd  %xmm2,0x50(%rsp)
L1043:
  movsd  D13(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  0x50(%rsp),%xmm6
  ucomisd %xmm6,%xmm0
  jp     L820
  jne    L820
  movss  0x2c(%rsp),%xmm0
  call   <cbrtf@plt>
  pxor   %xmm1,%xmm1
  ucomiss %xmm0,%xmm1
  ja     L284
  sqrtss %xmm0,%xmm0
  movss  %xmm0,0x50(%rsp)
L634:
  movss  D38(%rip),%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <powf@plt>
  movss  0x50(%rsp),%xmm3
  ucomiss %xmm3,%xmm0
  jp     L820
  je     L4
L820:
  call   <link_failure_sqrt_cbrt@plt>
L753:
  pxor   %xmm0,%xmm0
  movsd  (%rsp),%xmm5
  ucomisd %xmm5,%xmm0
  ja     L11
  sqrtsd %xmm5,%xmm5
  movapd %xmm5,%xmm0
L376:
  call   <cbrt@plt>
  movq   %xmm0,%rbx
  movsd  D13(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movq   %rbx,%xmm7
  ucomisd %xmm0,%xmm7
  jp     L389
  jne    L389
  pxor   %xmm0,%xmm0
  movss  0x2c(%rsp),%xmm7
  ucomiss %xmm7,%xmm0
  ja     L361
  sqrtss %xmm7,%xmm7
  movaps %xmm7,%xmm0
L899:
  call   <cbrtf@plt>
  movss  %xmm0,0x50(%rsp)
  movss  D38(%rip),%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <powf@plt>
  movss  0x50(%rsp),%xmm6
  ucomiss %xmm0,%xmm6
  jp     L389
  je     L960
L389:
  call   <link_failure_cbrt_sqrt@plt>
L276:
  pxor   %xmm0,%xmm0
  movsd  (%rsp),%xmm3
  ucomisd %xmm3,%xmm0
  ja     L768
  sqrtsd %xmm3,%xmm3
  movapd %xmm3,%xmm0
L292:
  movsd  0x10(%rsp),%xmm1
  call   <pow@plt>
  movq   %xmm0,%rbx
  movsd  0x10(%rsp),%xmm7
  mulsd  D2(%rip),%xmm7
  movq   %xmm7,%r14
  movapd %xmm7,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movq   %rbx,%xmm5
  ucomisd %xmm0,%xmm5
  jp     L573
  jne    L573
  pxor   %xmm0,%xmm0
  movss  0x2c(%rsp),%xmm5
  ucomiss %xmm5,%xmm0
  ja     L184
  sqrtss %xmm5,%xmm5
  movaps %xmm5,%xmm0
L202:
  movss  0x38(%rsp),%xmm1
  call   <powf@plt>
  movss  %xmm0,0x50(%rsp)
  movss  0x38(%rsp),%xmm1
  mulss  D22(%rip),%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <powf@plt>
  movss  0x50(%rsp),%xmm2
  ucomiss %xmm0,%xmm2
  jp     L573
  je     L977
L573:
  call   <link_failure_pow_sqrt@plt>
L544:
  movsd  0x10(%rsp),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L801
  sqrtsd %xmm0,%xmm0
  movsd  %xmm0,0x50(%rsp)
L648:
  movq   %r14,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  0x50(%rsp),%xmm2
  ucomisd %xmm2,%xmm0
  jp     L409
  jne    L409
  movss  0x38(%rsp),%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <powf@plt>
  pxor   %xmm1,%xmm1
  ucomiss %xmm0,%xmm1
  ja     L1044
  sqrtss %xmm0,%xmm0
  movss  %xmm0,0x50(%rsp)
L974:
  movss  0x38(%rsp),%xmm1
  mulss  D22(%rip),%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <powf@plt>
  movss  0x50(%rsp),%xmm4
  ucomiss %xmm4,%xmm0
  jp     L409
  je     L645
L409:
  call   <link_failure_sqrt_pow@plt>
L425:
  movsd  0x10(%rsp),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  0x30(%rsp),%xmm1
  call   <pow@plt>
  movq   %xmm0,%rbx
  movsd  0x10(%rsp),%xmm3
  mulsd  0x30(%rsp),%xmm3
  movapd %xmm3,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movq   %rbx,%xmm4
  ucomisd %xmm0,%xmm4
  jp     L412
  jne    L412
  movss  0x38(%rsp),%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <powf@plt>
  movss  0x3c(%rsp),%xmm1
  call   <powf@plt>
  movss  %xmm0,0x50(%rsp)
  movss  0x38(%rsp),%xmm6
  mulss  0x3c(%rsp),%xmm6
  movaps %xmm6,%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <powf@plt>
  movss  0x50(%rsp),%xmm7
  ucomiss %xmm0,%xmm7
  jp     L412
  je     L698
L412:
  call   <link_failure_pow_pow@plt>
L569:
  pxor   %xmm0,%xmm0
  movsd  (%rsp),%xmm4
  ucomisd %xmm4,%xmm0
  ja     L1149
  sqrtsd %xmm4,%xmm4
  movsd  %xmm4,0x50(%rsp)
L874:
  pxor   %xmm0,%xmm0
  movsd  0x10(%rsp),%xmm5
  ucomisd %xmm5,%xmm0
  ja     L660
  sqrtsd %xmm5,%xmm5
  movapd %xmm5,%xmm0
L891:
  mulsd  0x50(%rsp),%xmm0
  movq   %xmm0,%rbx
  movsd  (%rsp),%xmm6
  mulsd  0x10(%rsp),%xmm6
  movsd  %xmm6,0x50(%rsp)
  pxor   %xmm0,%xmm0
  ucomisd %xmm6,%xmm0
  ja     L959
  sqrtsd %xmm6,%xmm6
  movapd %xmm6,%xmm0
L206:
  movq   %rbx,%xmm3
  ucomisd %xmm0,%xmm3
  jp     L925
  jne    L925
  pxor   %xmm0,%xmm0
  movss  0x2c(%rsp),%xmm3
  ucomiss %xmm3,%xmm0
  ja     L446
  sqrtss %xmm3,%xmm3
  movss  %xmm3,0x60(%rsp)
L619:
  pxor   %xmm0,%xmm0
  movss  0x38(%rsp),%xmm6
  ucomiss %xmm6,%xmm0
  ja     L221
  sqrtss %xmm6,%xmm6
  movaps %xmm6,%xmm0
L386:
  mulss  0x60(%rsp),%xmm0
  movd   %xmm0,%ebx
  movss  0x2c(%rsp),%xmm0
  mulss  0x38(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  ucomiss %xmm0,%xmm1
  ja     L285
  sqrtss %xmm0,%xmm0
L705:
  movd   %ebx,%xmm2
  ucomiss %xmm0,%xmm2
  jp     L925
  je     L385
L925:
  call   <link_failure_root_x_root@plt>
L1139:
  movsd  0x10(%rsp),%xmm0
  call   <cbrt@plt>
  movq   %xmm0,%rbx
  movsd  0x50(%rsp),%xmm0
  call   <cbrt@plt>
  movq   %rbx,%xmm1
  mulsd  0x40(%rsp),%xmm1
  ucomisd %xmm0,%xmm1
  jp     L840
  jne    L840
  movss  0x2c(%rsp),%xmm0
  call   <cbrtf@plt>
  movss  %xmm0,0x40(%rsp)
  movss  0x38(%rsp),%xmm0
  call   <cbrtf@plt>
  movss  %xmm0,0x50(%rsp)
  movss  0x2c(%rsp),%xmm7
  mulss  0x38(%rsp),%xmm7
  movaps %xmm7,%xmm0
  call   <cbrtf@plt>
  movss  0x40(%rsp),%xmm1
  mulss  0x50(%rsp),%xmm1
  ucomiss %xmm0,%xmm1
  jp     L840
  jne    L840
  push   0x98(%rsp)
  push   0x98(%rsp)
  call   <cbrtl@plt>
  add    $0x10,%rsp
  fstpt  0x40(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  call   <cbrtl@plt>
  fstpt  0x60(%rsp)
  fldt   0xa0(%rsp)
  fldt   0xb0(%rsp)
  fmulp  %st,%st(1)
  fstpt  (%rsp)
  call   <cbrtl@plt>
  add    $0x10,%rsp
  fldt   0x40(%rsp)
  fldt   0x50(%rsp)
  fmulp  %st,%st(1)
  fucomip %st(1),%st
  fstp   %st(0)
  jp     L840
  je     L17
L840:
  call   <link_failure_root_x_root@plt>
L17:
  movsd  0x10(%rsp),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%r14
  movsd  0x30(%rsp),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbx
  movsd  0x10(%rsp),%xmm4
  addsd  0x30(%rsp),%xmm4
  movapd %xmm4,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movapd %xmm0,%xmm1
  movq   %rbx,%xmm0
  movq   %r14,%xmm2
  mulsd  %xmm2,%xmm0
  ucomisd %xmm1,%xmm0
  jp     L929
  jne    L929
  movss  0x38(%rsp),%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <powf@plt>
  movss  %xmm0,(%rsp)
  movss  0x3c(%rsp),%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <powf@plt>
  movss  %xmm0,0x10(%rsp)
  movss  0x38(%rsp),%xmm3
  addss  0x3c(%rsp),%xmm3
  movaps %xmm3,%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <powf@plt>
  movss  (%rsp),%xmm1
  mulss  0x10(%rsp),%xmm1
  ucomiss %xmm0,%xmm1
  jp     L929
  je     L73
L929:
  call   <link_failure_pow_x_pow@plt>
L1036:
  add    $0x78,%rsp
  pop    %rbx
  pop    %r14
  ret
L1080:
  movsd  (%rsp),%xmm0
  call   <sqrt@plt>
  jmp    L595
L762:
  call   <sqrt@plt>
  movsd  %xmm0,0x40(%rsp)
  jmp    L535
L864:
  movss  0x2c(%rsp),%xmm0
  call   <sqrtf@plt>
  jmp    L710
L870:
  call   <sqrtf@plt>
  movss  %xmm0,0x40(%rsp)
  jmp    L873
L84:
  fldt   0x90(%rsp)
  fldz
  fucomip %st(1),%st
  ja     L254
  fsqrt
L44:
  fldz
  fucomip %st(1),%st
  ja     L342
  fsqrt
  fstpt  0x40(%rsp)
L171:
  flds   0x61e(%rip)        # 2018 <_fini+0xd4>
  fstpt  0x50(%rsp)
  mov    0x50(%rsp),%rax
  mov    0x58(%rsp),%edx
  push   %rdx
  push   %rax
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   0x40(%rsp)
  fxch   %st(1)
  fucomip %st(1),%st
  fstp   %st(0)
  jp     L1008
  je     L331
  jmp    L1008
L254:
  fstp   %st(0)
  push   0x98(%rsp)
  push   0x98(%rsp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  jmp    L44
L342:
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <sqrtl@plt>
  fstpt  0x50(%rsp)
  add    $0x10,%rsp
  jmp    L171
L16:
  movsd  0x40(%rsp),%xmm0
  call   <sqrt@plt>
  movsd  %xmm0,0x50(%rsp)
  jmp    L1043
L284:
  call   <sqrtf@plt>
  movss  %xmm0,0x50(%rsp)
  jmp    L634
L4:
  push   0x98(%rsp)
  push   0x98(%rsp)
  call   <cbrtl@plt>
  add    $0x10,%rsp
  fldz
  fucomip %st(1),%st
  ja     L295
  fsqrt
  fstpt  0x50(%rsp)
L478:
  push   $0x3ffc
  push   $0xffffffffaaaaaaab
  movl   $0xaaaaaaaa,0x4(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   0x50(%rsp)
  fxch   %st(1)
  fucomip %st(1),%st
  fstp   %st(0)
  jp     L820
  je     L753
  jmp    L820
L295:
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <sqrtl@plt>
  fstpt  0x60(%rsp)
  add    $0x10,%rsp
  jmp    L478
L11:
  movsd  (%rsp),%xmm0
  call   <sqrt@plt>
  jmp    L376
L361:
  movss  0x2c(%rsp),%xmm0
  call   <sqrtf@plt>
  jmp    L899
L960:
  fldt   0x90(%rsp)
  fldz
  fucomip %st(1),%st
  ja     L1045
  fsqrt
L772:
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <cbrtl@plt>
  add    $0x10,%rsp
  fstpt  0x50(%rsp)
  push   $0x3ffc
  push   $0xffffffffaaaaaaab
  movl   $0xaaaaaaaa,0x4(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   0x50(%rsp)
  fucomip %st(1),%st
  fstp   %st(0)
  jp     L389
  je     L276
  jmp    L389
L1045:
  fstp   %st(0)
  push   0x98(%rsp)
  push   0x98(%rsp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  jmp    L772
L768:
  movsd  (%rsp),%xmm0
  call   <sqrt@plt>
  jmp    L292
L184:
  movss  0x2c(%rsp),%xmm0
  call   <sqrtf@plt>
  jmp    L202
L977:
  fldt   0x90(%rsp)
  fldz
  fucomip %st(1),%st
  ja     L1145
  fsqrt
L1108:
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <powl@plt>
  fstpt  0x70(%rsp)
  add    $0x10,%rsp
  fldt   0xb0(%rsp)
  fmuls  0x411(%rip)        # 2020 <_fini+0xdc>
  fstpt  (%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   0x50(%rsp)
  fucomip %st(1),%st
  fstp   %st(0)
  jp     L573
  je     L544
  jmp    L573
L1145:
  fstp   %st(0)
  push   0x98(%rsp)
  push   0x98(%rsp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  jmp    L1108
L801:
  call   <sqrt@plt>
  movsd  %xmm0,0x50(%rsp)
  jmp    L648
L1044:
  call   <sqrtf@plt>
  movss  %xmm0,0x50(%rsp)
  jmp    L974
L645:
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldz
  fucomip %st(1),%st
  ja     L203
  fsqrt
  fstpt  0x50(%rsp)
L381:
  fldt   0xa0(%rsp)
  fmuls  0x365(%rip)        # 2020 <_fini+0xdc>
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   0x50(%rsp)
  fxch   %st(1)
  fucomip %st(1),%st
  fstp   %st(0)
  jp     L409
  je     L425
  jmp    L409
L203:
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <sqrtl@plt>
  fstpt  0x60(%rsp)
  add    $0x10,%rsp
  jmp    L381
L698:
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  call   <powl@plt>
  add    $0x20,%rsp
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <powl@plt>
  fstpt  0x70(%rsp)
  add    $0x10,%rsp
  fldt   0xb0(%rsp)
  fldt   0xc0(%rsp)
  fmulp  %st,%st(1)
  fstpt  (%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  call   <powl@plt>
  add    $0x20,%rsp
  fldt   0x50(%rsp)
  fucomip %st(1),%st
  fstp   %st(0)
  jp     L412
  je     L569
  jmp    L412
L1149:
  movsd  (%rsp),%xmm0
  call   <sqrt@plt>
  movsd  %xmm0,0x50(%rsp)
  jmp    L874
L660:
  movsd  0x10(%rsp),%xmm0
  call   <sqrt@plt>
  jmp    L891
L959:
  movsd  0x50(%rsp),%xmm0
  call   <sqrt@plt>
  jmp    L206
L446:
  movss  0x2c(%rsp),%xmm0
  call   <sqrtf@plt>
  movss  %xmm0,0x60(%rsp)
  jmp    L619
L221:
  movss  0x38(%rsp),%xmm0
  call   <sqrtf@plt>
  jmp    L386
L285:
  call   <sqrtf@plt>
  jmp    L705
L385:
  fldt   0x90(%rsp)
  fldz
  fucomip %st(1),%st
  ja     L847
  fsqrt
  fstpt  0x60(%rsp)
L571:
  fldt   0xa0(%rsp)
  fldz
  fucomip %st(1),%st
  ja     L933
  fsqrt
L383:
  fldt   0x60(%rsp)
  fmulp  %st,%st(1)
  fstpt  0x60(%rsp)
  fldt   0x90(%rsp)
  fldt   0xa0(%rsp)
  fmulp  %st,%st(1)
  fldz
  fucomip %st(1),%st
  ja     L360
  fsqrt
L944:
  fldt   0x60(%rsp)
  fucomip %st(1),%st
  fstp   %st(0)
  jp     L925
  je     L1139
  jmp    L925
L847:
  fstp   %st(0)
  push   0x98(%rsp)
  push   0x98(%rsp)
  call   <sqrtl@plt>
  fstpt  0x70(%rsp)
  add    $0x10,%rsp
  jmp    L571
L933:
  fstp   %st(0)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  jmp    L383
L360:
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  jmp    L944
L73:
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  call   <powl@plt>
  fstpt  0x20(%rsp)
  add    $0x20,%rsp
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  call   <powl@plt>
  fstpt  0x30(%rsp)
  add    $0x10,%rsp
  fldt   0xb0(%rsp)
  fldt   0xc0(%rsp)
  faddp  %st,%st(1)
  fstpt  (%rsp)
  push   0xa8(%rsp)
  push   0xa8(%rsp)
  call   <powl@plt>
  fldt   0x20(%rsp)
  fldt   0x30(%rsp)
  fmulp  %st,%st(1)
  add    $0x20,%rsp
  fucomip %st(1),%st
  fstp   %st(0)
  jp     L929
  je     L1036
  jmp    L929
```

tool_calls: name: parse_data
arguments: label: D82
type: byte[8]
name: parse_data
arguments: label: D59
type: byte[4]
name: parse_data
arguments: label: D13
type: byte[8]
name: parse_data
arguments: label: D38
type: byte[4]
name: parse_data
arguments: label: D2
type: byte[8]
name: parse_data
arguments: label: D22
type: byte[4]

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

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

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

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

tool: {"D2": [0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x3f]}

tool: {"D22": [0x00,0x00,0x00,0x3f]}

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