user: 提供的汇编代码用C语言表示会是什么样子：

```asm
<main>:
  endbr64
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x30,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x28(%rsp)
  xor    %eax,%eax
  lea    0x14(%rsp),%rbx
  prefetcht0 (%rbx)
  prefetcht0 (%rbx)
  prefetchnta (%rbx)
  call   <random@plt>
  xor    %esi,%esi
  lea    D643(%rip),%rdi
  mov    %eax,%ebp
  xor    %eax,%eax
  call   <p@plt>
  mov    $0x14,%esi
  xor    %eax,%eax
  movslq %ebp,%rbx
  lea    D713(%rip),%rdi
  call   <p@plt>
  mov    $0x1,%esi
  lea    D611(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  cmp    $0xc,%ebp
  lea    D639(%rip),%rdi
  sete   %sil
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D798(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D439(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D794(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  movsd  D432(%rip),%xmm0
  mov    $0x1,%eax
  lea    D20(%rip),%rdi
  call   <q@plt>
  mov    D432(%rip),%rax
  lea    D506(%rip),%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <q@plt>
  flds   0x12b7(%rip)        # 2528 <_fini+0xa5c>
  sub    $0x10,%rsp
  xor    %eax,%eax
  lea    D549(%rip),%rdi
  fstpt  (%rsp)
  call   <q@plt>
  mov    D432(%rip),%rax
  lea    D485(%rip),%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <q@plt>
  mov    D432(%rip),%rax
  lea    D413(%rip),%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <q@plt>
  fldt   0x127a(%rip)        # 2540 <_fini+0xa74>
  sub    $0x10,%rsp
  xor    %eax,%eax
  lea    D311(%rip),%rdi
  fstpt  (%rsp)
  call   <q@plt>
  add    $0x20,%rsp
  mov    $0x2,%esi
  xor    %eax,%eax
  lea    D717(%rip),%rdi
  call   <p@plt>
  mov    $0x2,%esi
  lea    D698(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  mov    $0x2,%esi
  lea    D652(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  movsd  D218(%rip),%xmm0
  mov    $0x1,%eax
  lea    D543(%rip),%rdi
  call   <q@plt>
  mov    D218(%rip),%rax
  lea    D620(%rip),%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <q@plt>
  flds   0x11d8(%rip)        # 252c <_fini+0xa60>
  lea    D748(%rip),%rdi
  fstpt  (%rsp)
  mov    0x8(%rsp),%edx
  mov    (%rsp),%rax
  push   %rdx
  push   %rax
  xor    %eax,%eax
  call   <q@plt>
  movsd  D497(%rip),%xmm0
  mov    $0x1,%eax
  lea    D735(%rip),%rdi
  call   <q@plt>
  movsd  D606(%rip),%xmm0
  mov    $0x1,%eax
  lea    D12(%rip),%rdi
  call   <q@plt>
  movsd  D454(%rip),%xmm0
  mov    $0x1,%eax
  lea    D634(%rip),%rdi
  call   <q@plt>
  push   $0x7fff
  movabs $0xc00000000000000a,%rax
  lea    D302(%rip),%rdi
  push   %rax
  xor    %eax,%eax
  call   <q@plt>
  add    $0x20,%rsp
  mov    $0x1,%eax
  movsd  D863(%rip),%xmm0
  lea    D470(%rip),%rdi
  call   <q@plt>
  xor    %esi,%esi
  lea    D878(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D762(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  mov    $0x1,%esi
  lea    D30(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  mov    $0x1,%esi
  lea    D129(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  mov    $0x1,%esi
  lea    D316(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D516(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D157(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D598(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D803(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  mov    %ebp,%esi
  lea    D602(%rip),%rdi
  neg    %esi
  cmovs  %ebp,%esi
  xor    %eax,%eax
  call   <p@plt>
  bsr    %ebp,%esi
  lea    D622(%rip),%rdi
  xor    %eax,%eax
  xor    $0x1f,%esi
  call   <p@plt>
  bsr    %rbx,%rsi
  lea    D60(%rip),%rdi
  xor    %eax,%eax
  xor    $0x3f,%esi
  call   <p@plt>
  bsr    %rbx,%rsi
  xor    %r13d,%r13d
  xor    %eax,%eax
  tzcnt  %ebp,%r13d
  xor    $0x3f,%esi
  lea    D720(%rip),%rdi
  xor    %r12d,%r12d
  call   <p@plt>
  tzcnt  %rbx,%r12
  mov    %r13d,%esi
  xor    %eax,%eax
  lea    D156(%rip),%rdi
  call   <p@plt>
  mov    %r12d,%esi
  lea    D321(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  mov    %r12d,%esi
  lea    D279(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  bsf    %ebp,%esi
  mov    $0xffffffff,%esi
  mov    %rbx,%r12
  cmovne %r13d,%esi
  lea    D217(%rip),%rdi
  xor    %eax,%eax
  mov    $0xffffffffffffffff,%r13
  add    $0x1,%esi
  call   <p@plt>
  bsf    %rbx,%rax
  lea    D347(%rip),%rdi
  cmove  %r13,%rax
  lea    0x1(%rax),%esi
  xor    %eax,%eax
  call   <p@plt>
  bsf    %rbx,%rax
  lea    D530(%rip),%rdi
  cmove  %r13,%rax
  lea    0x1(%rax),%esi
  xor    %eax,%eax
  call   <p@plt>
  mov    %ebp,%eax
  xor    %esi,%esi
  lea    D330(%rip),%rdi
  shr    $0x10,%eax
  xor    %ebp,%eax
  xor    %ah,%al
  setnp  %sil
  shr    $0x20,%r12
  xor    %eax,%eax
  call   <p@plt>
  xor    %ebp,%r12d
  xor    %esi,%esi
  lea    D246(%rip),%rdi
  mov    %r12d,%r13d
  mov    %r12d,%eax
  shr    $0x10,%r13d
  xor    %r13d,%eax
  xor    %ah,%al
  setnp  %sil
  xor    %eax,%eax
  call   <p@plt>
  mov    %r12d,%eax
  xor    %esi,%esi
  lea    D581(%rip),%rdi
  xor    %r13d,%eax
  xor    %ah,%al
  setnp  %sil
  xor    %eax,%eax
  call   <p@plt>
  mov    %ebp,%edi
  call   <__popcountdi2>
  lea    D882(%rip),%rdi
  mov    %eax,%esi
  xor    %eax,%eax
  call   <p@plt>
  mov    %rbx,%rdi
  bswap  %rbx
  call   <__popcountdi2>
  lea    D120(%rip),%rdi
  mov    %eax,%r12d
  mov    %eax,%esi
  xor    %eax,%eax
  call   <p@plt>
  mov    %r12d,%esi
  lea    D787(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  movsd  D70(%rip),%xmm0
  mov    %ebp,%edi
  call   <__powidf2>
  lea    D94(%rip),%rdi
  mov    $0x1,%eax
  call   <q@plt>
  movss  D404(%rip),%xmm0
  mov    %ebp,%edi
  call   <__powisf2>
  lea    D180(%rip),%rdi
  mov    $0x1,%eax
  cvtss2sd %xmm0,%xmm0
  call   <q@plt>
  flds   0xec0(%rip)        # 2530 <_fini+0xa64>
  mov    %ebp,%edi
  fstpt  (%rsp)
  mov    (%rsp),%rax
  mov    0x8(%rsp),%edx
  push   %rdx
  push   %rax
  call   <__powixf2>
  lea    D151(%rip),%rdi
  xor    %eax,%eax
  lea    0x28(%rsp),%r14
  fstpt  (%rsp)
  lea    0x2e(%rsp),%r13
  call   <q@plt>
  xor    %eax,%eax
  call   <random@plt>
  mov    $0x6f,%edx
  mov    %r14,%rsi
  mov    %r13,%rdi
  mov    %dx,0x2c(%rsp)
  movslq %eax,%r12
  movl   $0x6c6c6548,0x28(%rsp)
  call   <strcat@plt>
  xor    %esi,%esi
  lea    D551(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D135(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  mov    %r12,%rdx
  mov    %r14,%rsi
  mov    %r13,%rdi
  call   <strncat@plt>
  xor    %esi,%esi
  lea    D494(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D221(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D416(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D309(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D779(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D815(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D711(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D681(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  mov    %r12,%rcx
  mov    $0xa,%edx
  mov    %r14,%rsi
  mov    %r13,%rdi
  call   <__mempcpy_chk@plt>
  xor    %esi,%esi
  lea    D47(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D13(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D877(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %esi,%esi
  lea    D469(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  xor    %eax,%eax
  mov    $0xa,%esi
  lea    D354(%rip),%rdi
  call   <p@plt>
  mov    $0xa,%esi
  lea    D572(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  mov    $0xa,%esi
  lea    D362(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  mov    $0xa,%esi
  lea    D709(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  mov    %ebp,%esi
  lea    D256(%rip),%rdi
  xor    %eax,%eax
  rol    $0x8,%si
  movzwl %si,%esi
  call   <p@plt>
  mov    %ebp,%esi
  lea    D685(%rip),%rdi
  xor    %eax,%eax
  bswap  %esi
  call   <p@plt>
  mov    %rbx,%rsi
  lea    D266(%rip),%rdi
  xor    %eax,%eax
  call   <p@plt>
  mov    %ebp,%edi
  xor    %eax,%eax
  call   <__builtin_bitreverse8@plt>
  lea    D524(%rip),%rdi
  mov    %eax,%esi
  xor    %eax,%eax
  call   <p@plt>
  mov    %ebp,%edi
  xor    %eax,%eax
  call   <__builtin_bitreverse16@plt>
  lea    D176(%rip),%rdi
  mov    %eax,%esi
  xor    %eax,%eax
  call   <p@plt>
  mov    %ebp,%edi
  xor    %eax,%eax
  call   <__builtin_bitreverse32@plt>
  lea    D557(%rip),%rdi
  mov    %eax,%esi
  xor    %eax,%eax
  call   <p@plt>
  mov    %ebp,%edi
  xor    %eax,%eax
  call   <__builtin_bitreverse64@plt>
  lea    D346(%rip),%rdi
  mov    %eax,%esi
  xor    %eax,%eax
  call   <p@plt>
  ud2
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D643
datatype: string
name: extract_symbolic_data
arguments: data_tag: D713
datatype: string
name: extract_symbolic_data
arguments: data_tag: D611
datatype: string
name: extract_symbolic_data
arguments: data_tag: D639
datatype: string
name: extract_symbolic_data
arguments: data_tag: D798
datatype: string
name: extract_symbolic_data
arguments: data_tag: D439
datatype: string
name: extract_symbolic_data
arguments: data_tag: D794
datatype: string
name: extract_symbolic_data
arguments: data_tag: D432
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D20
datatype: string
name: extract_symbolic_data
arguments: data_tag: D506
datatype: string
name: extract_symbolic_data
arguments: data_tag: D549
datatype: string
name: extract_symbolic_data
arguments: data_tag: D485
datatype: string
name: extract_symbolic_data
arguments: data_tag: D413
datatype: string
name: extract_symbolic_data
arguments: data_tag: D311
datatype: string
name: extract_symbolic_data
arguments: data_tag: D717
datatype: string
name: extract_symbolic_data
arguments: data_tag: D698
datatype: string
name: extract_symbolic_data
arguments: data_tag: D652
datatype: string
name: extract_symbolic_data
arguments: data_tag: D218
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D543
datatype: string
name: extract_symbolic_data
arguments: data_tag: D620
datatype: string
name: extract_symbolic_data
arguments: data_tag: D748
datatype: string
name: extract_symbolic_data
arguments: data_tag: D497
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D735
datatype: string
name: extract_symbolic_data
arguments: data_tag: D606
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D12
datatype: string
name: extract_symbolic_data
arguments: data_tag: D454
datatype: f32[2]
name: extract_symbolic_data
arguments: data_tag: D634
datatype: string
name: extract_symbolic_data
arguments: data_tag: D302
datatype: string
name: extract_symbolic_data
arguments: data_tag: D863
datatype: byte[8]
name: extract_symbolic_data
arguments: data_tag: D470
datatype: string
name: extract_symbolic_data
arguments: data_tag: D878
datatype: string
name: extract_symbolic_data
arguments: data_tag: D762
datatype: string
name: extract_symbolic_data
arguments: data_tag: D30
datatype: string
name: extract_symbolic_data
arguments: data_tag: D129
datatype: string
name: extract_symbolic_data
arguments: data_tag: D316
datatype: string
name: extract_symbolic_data
arguments: data_tag: D516
datatype: string
name: extract_symbolic_data
arguments: data_tag: D157
datatype: string
name: extract_symbolic_data
arguments: data_tag: D598
datatype: string
name: extract_symbolic_data
arguments: data_tag: D803
datatype: string
name: extract_symbolic_data
arguments: data_tag: D602
datatype: string
name: extract_symbolic_data
arguments: data_tag: D622
datatype: string
name: extract_symbolic_data
arguments: data_tag: D60
datatype: string
name: extract_symbolic_data
arguments: data_tag: D720
datatype: string
name: extract_symbolic_data
arguments: data_tag: D156
datatype: string
name: extract_symbolic_data
arguments: data_tag: D321
datatype: string
name: extract_symbolic_data
arguments: data_tag: D279
datatype: string
name: extract_symbolic_data
arguments: data_tag: D217
datatype: string
name: extract_symbolic_data
arguments: data_tag: D347
datatype: string
name: extract_symbolic_data
arguments: data_tag: D530
datatype: string
name: extract_symbolic_data
arguments: data_tag: D330
datatype: string
name: extract_symbolic_data
arguments: data_tag: D246
datatype: string
name: extract_symbolic_data
arguments: data_tag: D581
datatype: string
name: extract_symbolic_data
arguments: data_tag: D882
datatype: string
name: extract_symbolic_data
arguments: data_tag: D120
datatype: string
name: extract_symbolic_data
arguments: data_tag: D787
datatype: string
name: extract_symbolic_data
arguments: data_tag: D70
datatype: f32[2]
name: extract_symbolic_data
arguments: data_tag: D94
datatype: string
name: extract_symbolic_data
arguments: data_tag: D404
datatype: byte[4]
name: extract_symbolic_data
arguments: data_tag: D180
datatype: string
name: extract_symbolic_data
arguments: data_tag: D151
datatype: string
name: extract_symbolic_data
arguments: data_tag: D551
datatype: string
name: extract_symbolic_data
arguments: data_tag: D135
datatype: string
name: extract_symbolic_data
arguments: data_tag: D494
datatype: string
name: extract_symbolic_data
arguments: data_tag: D221
datatype: string
name: extract_symbolic_data
arguments: data_tag: D416
datatype: string
name: extract_symbolic_data
arguments: data_tag: D309
datatype: string
name: extract_symbolic_data
arguments: data_tag: D779
datatype: string
name: extract_symbolic_data
arguments: data_tag: D815
datatype: string
name: extract_symbolic_data
arguments: data_tag: D711
datatype: string
name: extract_symbolic_data
arguments: data_tag: D681
datatype: string
name: extract_symbolic_data
arguments: data_tag: D47
datatype: string
name: extract_symbolic_data
arguments: data_tag: D13
datatype: string
name: extract_symbolic_data
arguments: data_tag: D877
datatype: string
name: extract_symbolic_data
arguments: data_tag: D469
datatype: string
name: extract_symbolic_data
arguments: data_tag: D354
datatype: string
name: extract_symbolic_data
arguments: data_tag: D572
datatype: string
name: extract_symbolic_data
arguments: data_tag: D362
datatype: string
name: extract_symbolic_data
arguments: data_tag: D709
datatype: string
name: extract_symbolic_data
arguments: data_tag: D256
datatype: string
name: extract_symbolic_data
arguments: data_tag: D685
datatype: string
name: extract_symbolic_data
arguments: data_tag: D266
datatype: string
name: extract_symbolic_data
arguments: data_tag: D524
datatype: string
name: extract_symbolic_data
arguments: data_tag: D176
datatype: string
name: extract_symbolic_data
arguments: data_tag: D557
datatype: string
name: extract_symbolic_data
arguments: data_tag: D346
datatype: string

tool: D643: types_compatible_p(int, float)

tool: D713: choose_expr(0, 10, 20)

tool: D611: constant_p(sizeof(10))

tool: D639: expect(N == 12, 0)

tool: D798: prefetch(&N)

tool: D439: prefetch(&N, 1)

tool: D794: prefetch(&N, 1, 0)

tool: {"D432": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x7f]}

tool: D20: huge_val()

tool: D506: huge_valf()

tool: D549: huge_vall()

tool: D485: inf()

tool: D413: inff()

tool: D311: infl()

tool: D717: fpclassify(0, 1, 2, 3, 4, 1.0)

tool: D698: fpclassify(0, 1, 2, 3, 4, 1.0f)

tool: D652: fpclassify(0, 1, 2, 3, 4, 1.0l)

tool: {"D218": [0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x7f]}

tool: D543: nan("")

tool: D620: nanf("")

tool: D748: nanl("")

tool: {"D497": [0x00,0x00,0x00,0x00,0x00,0x00,0xf4,0x7f]}

tool: D735: nans("")

tool: {"D606": [0x0a,0x00,0x00,0x00,0x00,0x00,0xf8,0x7f]}

tool: D12: nan("10")

tool: {"D454": [2.0,null]}

tool: D634: nanf("10")

tool: D302: nanl("10")

tool: {"D863": [0x0a,0x00,0x00,0x00,0x00,0x00,0xf0,0x7f]}

tool: D470: nans("10")

tool: D878: isgreater(1., 2.)

tool: D762: isgreaterequal(1., 2.)

tool: D30: isless(1., 2.)

tool: D129: islessequal(1., 2.)

tool: D316: islessgreater(1., 2.)

tool: D516: isunordered(1., 2.)

tool: D157: isinf(1.)

tool: D598: isinf_sign(1.)

tool: D803: isnan(1.)

tool: D602: abs(N)

tool: D622: clz(N)

tool: D60: clzl(N)

tool: D720: clzll(N)

tool: D156: ctz(N)

tool: D321: ctzl(N)

tool: D279: ctzll(N)

tool: D217: ffs(N)

tool: D347: ffsl(N)

tool: D530: ffsll(N)

tool: D330: parity(N)

tool: D246: parityl(N)

tool: D581: parityll(N)

tool: D882: popcount(N)

tool: D120: popcountl(N)

tool: D787: popcountll(N)

tool: {"D70": [2.0,1.899999976158142]}

tool: D94: powi(1.2f, N)

tool: {"D404": [0x9a,0x99,0x99,0x3f]}

tool: D180: powif(1.2f, N)

tool: D151: powil(1.2f, N)

tool: D551: strcat(s0, s1)

tool: D135: strcmp(s0, s1)

tool: D494: strncat(s0, s1, n)

tool: D221: strchr(s0, s1[0])

tool: D416: strrchr(s0, s1[0])

tool: D309: strcpy(s0, s1)

tool: D779: strncpy(s0, s1, n)

tool: D815: __memset_chk(s0, 0, sizeof s0, n)

tool: D711: __memcpy_chk(s0, s1, sizeof s0, n)

tool: D681: __memmove_chk(s0, s1, sizeof s0, n)

tool: D47: __mempcpy_chk(s0, s1, sizeof s0, n)

tool: D13: __strncpy_chk(s0, s1, sizeof s0, n)

tool: D877: __strcpy_chk(s0, s1, n)

tool: D469: __strcat_chk(s0, s1, n)

tool: D354: object_size(s0, 0)

tool: D572: object_size(s0, 1)

tool: D362: object_size(s0, 2)

tool: D709: object_size(s0, 3)

tool: D256: bswap16(N)

tool: D685: bswap32(N)

tool: D266: bswap64(N)

tool: D524: bitreverse8(N)

tool: D176: bitreverse16(N)

tool: D557: bitreverse32(N)

tool: D346: bitreverse64(N)

assistant: ```c
int main() {
  int N = random();
  p("types_compatible_p"
    "(int, float)",
    __builtin_types_compatible_p(int, float));
  p("choose_expr"
    "(0, 10, 20)",
    __builtin_choose_expr(0, 10, 20));
  p("constant_p"
    "(sizeof(10))",
    __builtin_constant_p(sizeof(10)));
  p("expect"
    "(N == 12, 0)",
    __builtin_expect(N == 12, 0));
  p("prefetch"
    "(&N)",
    (__builtin_prefetch(&N), 0));
  p("prefetch"
    "(&N, 1)",
    (__builtin_prefetch(&N, 1), 0));
  p("prefetch"
    "(&N, 1, 0)",
    (__builtin_prefetch(&N, 1, 0), 0));
  q("huge_val"
    "()",
    __builtin_huge_val());
  q("huge_valf"
    "()",
    __builtin_huge_valf());
  q("huge_vall"
    "()",
    __builtin_huge_vall());
  q("inf"
    "()",
    __builtin_inf());
  q("inff"
    "()",
    __builtin_inff());
  q("infl"
    "()",
    __builtin_infl());
  p("fpclassify"
    "(0, 1, 2, 3, 4, 1.0)",
    __builtin_fpclassify(0, 1, 2, 3, 4, 1.0));
  p("fpclassify"
    "(0, 1, 2, 3, 4, 1.0f)",
    __builtin_fpclassify(0, 1, 2, 3, 4, 1.0f));
  p("fpclassify"
    "(0, 1, 2, 3, 4, 1.0l)",
    __builtin_fpclassify(0, 1, 2, 3, 4, 1.0l));
  q("nan"
    "(\"\")",
    __builtin_nan(""));
  q("nanf"
    "(\"\")",
    __builtin_nanf(""));
  q("nanl"
    "(\"\")",
    __builtin_nanl(""));
  q("nans"
    "(\"\")",
    __builtin_nans(""));
  q("nan"
    "(\"10\")",
    __builtin_nan("10"));
  q("nanf"
    "(\"10\")",
    __builtin_nanf("10"));
  q("nanl"
    "(\"10\")",
    __builtin_nanl("10"));
  q("nans"
    "(\"10\")",
    __builtin_nans("10"));
  p("isgreater"
    "(1., 2.)",
    __builtin_isgreater(1., 2.));
  p("isgreaterequal"
    "(1., 2.)",
    __builtin_isgreaterequal(1., 2.));
  p("isless"
    "(1., 2.)",
    __builtin_isless(1., 2.));
  p("islessequal"
    "(1., 2.)",
    __builtin_islessequal(1., 2.));
  p("islessgreater"
    "(1., 2.)",
    __builtin_islessgreater(1., 2.));
  p("isunordered"
    "(1., 2.)",
    __builtin_isunordered(1., 2.));
  p("isinf"
    "(1.)",
    __builtin_isinf(1.));
  p("isinf_sign"
    "(1.)",
    __builtin_isinf_sign(1.));
  p("isnan"
    "(1.)",
    __builtin_isnan(1.));
  p("abs"
    "(N)",
    __builtin_abs(N));
  p("clz"
    "(N)",
    __builtin_clz(N));
  p("clzl"
    "(N)",
    __builtin_clzl(N));
  p("clzll"
    "(N)",
    __builtin_clzll(N));
  p("ctz"
    "(N)",
    __builtin_ctz(N));
  p("ctzl"
    "(N)",
    __builtin_ctzl(N));
  p("ctzll"
    "(N)",
    __builtin_ctzll(N));
  p("ffs"
    "(N)",
    __builtin_ffs(N));
  p("ffsl"
    "(N)",
    __builtin_ffsl(N));
  p("ffsll"
    "(N)",
    __builtin_ffsll(N));
  p("parity"
    "(N)",
    __builtin_parity(N));
  p("parityl"
    "(N)",
    __builtin_parityl(N));
  p("parityll"
    "(N)",
    __builtin_parityll(N));
  p("popcount"
    "(N)",
    __builtin_popcount(N));
  p("popcountl"
    "(N)",
    __builtin_popcountl(N));
  p("popcountll"
    "(N)",
    __builtin_popcountll(N));
  q("powi"
    "(1.2f, N)",
    __builtin_powi(1.2f, N));
  q("powif"
    "(1.2f, N)",
    __builtin_powif(1.2f, N));
  q("powil"
    "(1.2f, N)",
    __builtin_powil(1.2f, N));
  int a, b, n = random();
  char s0[10], s1[] = "Hello";
  p("strcat"
    "(s0, s1)",
    (__builtin_strcat(s0, s1), 0));
  p("strcmp"
    "(s0, s1)",
    (__builtin_strcmp(s0, s1), 0));
  p("strncat"
    "(s0, s1, n)",
    (__builtin_strncat(s0, s1, n), 0));
  p("strchr"
    "(s0, s1[0])",
    (__builtin_strchr(s0, s1[0]), 0));
  p("strrchr"
    "(s0, s1[0])",
    (__builtin_strrchr(s0, s1[0]), 0));
  p("strcpy"
    "(s0, s1)",
    (__builtin_strcpy(s0, s1), 0));
  p("strncpy"
    "(s0, s1, n)",
    (__builtin_strncpy(s0, s1, n), 0));
  p("__memset_chk"
    "(s0, 0, sizeof s0, n)",
    (__builtin___memset_chk(s0, 0, sizeof s0, n), 0));
  p("__memcpy_chk"
    "(s0, s1, sizeof s0, n)",
    (__builtin___memcpy_chk(s0, s1, sizeof s0, n), 0));
  p("__memmove_chk"
    "(s0, s1, sizeof s0, n)",
    (__builtin___memmove_chk(s0, s1, sizeof s0, n), 0));
  p("__mempcpy_chk"
    "(s0, s1, sizeof s0, n)",
    (__builtin___mempcpy_chk(s0, s1, sizeof s0, n), 0));
  p("__strncpy_chk"
    "(s0, s1, sizeof s0, n)",
    (__builtin___strncpy_chk(s0, s1, sizeof s0, n), 0));
  p("__strcpy_chk"
    "(s0, s1, n)",
    (__builtin___strcpy_chk(s0, s1, n), 0));
  s0[0] = 0;
  p("__strcat_chk"
    "(s0, s1, n)",
    (__builtin___strcat_chk(s0, s1, n), 0));
  p("object_size"
    "(s0, 0)",
    __builtin_object_size(s0, 0));
  p("object_size"
    "(s0, 1)",
    __builtin_object_size(s0, 1));
  p("object_size"
    "(s0, 2)",
    __builtin_object_size(s0, 2));
  p("object_size"
    "(s0, 3)",
    __builtin_object_size(s0, 3));
  p("bswap16"
    "(N)",
    __builtin_bswap16(N));
  p("bswap32"
    "(N)",
    __builtin_bswap32(N));
  p("bswap64"
    "(N)",
    __builtin_bswap64(N));
  p("bitreverse8"
    "(N)",
    __builtin_bitreverse8(N));
  p("bitreverse16"
    "(N)",
    __builtin_bitreverse16(N));
  p("bitreverse32"
    "(N)",
    __builtin_bitreverse32(N));
  p("bitreverse64"
    "(N)",
    __builtin_bitreverse64(N));
  p("trap"
    "()",
    (__builtin_trap(), 0));
  r("extract_return_addr"
    "(&N)",
    __builtin_extract_return_addr(&N));
  p("signbit"
    "(1.0)",
    __builtin_signbit(1.0));
  return 0;
}
```