user: Please show me the C implementation that matches the assembly code listed below:

```asm
<test_float_builtins>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  movss  %xmm0,-0x14(%rbp)
  movsd  %xmm1,-0x20(%rbp)
  movss  -0x14(%rbp),%xmm0
  movss  D27(%rip),%xmm1
  andps  %xmm1,%xmm0
  movss  %xmm0,-0x28(%rbp)
  fldt   0xe86(%rip)        # 2010 <_fini+0xd0c>
  flds   -0x28(%rbp)
  fucomip %st(1),%st
  fstp   %st(0)
  setbe  %al
  xor    $0x1,%eax
  movzbl %al,%eax
  mov    %eax,-0x4(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movq   D13(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  fldt   0xe57(%rip)        # 2010 <_fini+0xd0c>
  fldl   -0x28(%rbp)
  fucomip %st(1),%st
  fstp   %st(0)
  setbe  %al
  xor    $0x1,%eax
  movzbl %al,%eax
  mov    %eax,-0x4(%rbp)
  fldt   0x10(%rbp)
  fabs
  fldt   0xe39(%rip)        # 2010 <_fini+0xd0c>
  fxch   %st(1)
  fucomip %st(1),%st
  fstp   %st(0)
  setbe  %al
  xor    $0x1,%eax
  movzbl %al,%eax
  mov    %eax,-0x4(%rbp)
  flds   -0x14(%rbp)
  fld    %st(0)
  fabs
  fldt   0xe1a(%rip)        # 2010 <_fini+0xd0c>
  fxch   %st(1)
  fucomip %st(1),%st
  fstp   %st(0)
  setbe  %al
  xor    $0x1,%eax
  test   %al,%al
  je     L85
  fxam
  fnstsw %ax
  fstp   %st(0)
  and    $0x200,%eax
  test   %eax,%eax
  je     L93
  mov    $0xffffffff,%eax
  jmp    L12
L93:
  mov    $0x1,%eax
  jmp    L12
L85:
  fstp   %st(0)
  mov    $0x0,%eax
L12:
  mov    %eax,-0x4(%rbp)
  fldl   -0x20(%rbp)
  fld    %st(0)
  fabs
  fldt   0xdd6(%rip)        # 2010 <_fini+0xd0c>
  fxch   %st(1)
  fucomip %st(1),%st
  fstp   %st(0)
  setbe  %al
  xor    $0x1,%eax
  test   %al,%al
  je     L56
  fxam
  fnstsw %ax
  fstp   %st(0)
  and    $0x200,%eax
  test   %eax,%eax
  je     L0
  mov    $0xffffffff,%eax
  jmp    L29
L0:
  mov    $0x1,%eax
  jmp    L29
L56:
  fstp   %st(0)
  mov    $0x0,%eax
L29:
  mov    %eax,-0x4(%rbp)
  fldt   0x10(%rbp)
  fabs
  fldt   0xd94(%rip)        # 2010 <_fini+0xd0c>
  fxch   %st(1)
  fucomip %st(1),%st
  fstp   %st(0)
  ja     L59
  mov    $0x0,%eax
  jmp    L51
L59:
  fldt   0x10(%rbp)
  fxam
  fnstsw %ax
  fstp   %st(0)
  and    $0x200,%eax
  test   %eax,%eax
  je     L23
  mov    $0xffffffff,%eax
  jmp    L51
L23:
  mov    $0x1,%eax
L51:
  mov    %eax,-0x4(%rbp)
  mov    -0x14(%rbp),%eax
  movd   %eax,%xmm0
  call   <__builtin_isfinite@plt>
  mov    %eax,-0x4(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movq   D13(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  D36(%rip),%xmm0
  ucomisd %xmm1,%xmm0
  setb   %al
  xor    $0x1,%eax
  movzbl %al,%eax
  mov    %eax,-0x4(%rbp)
  mov    -0x14(%rbp),%eax
  movd   %eax,%xmm0
  call   <__builtin_isnormal@plt>
  mov    %eax,-0x4(%rbp)
  mov    $0x0,%eax
  call   <__builtin_flt_rounds@plt>
  mov    %eax,-0x4(%rbp)
  nop
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: data_tag: D27
type: byte[4]
name: retrieve_data
arguments: data_tag: D13
type: byte[8]
name: retrieve_data
arguments: data_tag: D36
type: byte[8]

tool: {"D27": [0xff,0xff,0xff,0x7f]}

tool: {"D13": [0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f]}

tool: {"D36": [0xff,0xff,0xff,0xff,0xff,0xff,0xef,0x7f]}

assistant: ```c
void test_float_builtins(float F, double D, long double LD) {
  volatile int res;
  res = __builtin_isinf(F);
  res = __builtin_isinf(D);
  res = __builtin_isinf(LD);
  res = __builtin_isinf_sign(F);
  res = __builtin_isinf_sign(D);
  res = __builtin_isinf_sign(LD);
  res = __builtin_isfinite(F);
  res = finite(D);
  res = __builtin_isnormal(F);
  res = __builtin_flt_rounds();
}
```