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
  call   <random@plt>
  mov    %eax,%ebx
  mov    $0x0,%esi
  lea    D526(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x14,%esi
  lea    D274(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x1,%esi
  lea    D566(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  cmp    $0xc,%ebx
  sete   %sil
  movzbl %sil,%esi
  lea    D87(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  lea    0x14(%rsp),%rbp
  prefetcht0 0x0(%rbp)
  mov    $0x0,%esi
  lea    D810(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  prefetcht0 0x0(%rbp)
  mov    $0x0,%esi
  lea    D364(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  prefetchnta 0x0(%rbp)
  mov    $0x0,%esi
  lea    D89(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    D203(%rip),%rax
  movq   %rax,%xmm0
  lea    D762(%rip),%rdi
  mov    $0x1,%eax
  call   <q@plt>
  mov    D203(%rip),%rax
  movq   %rax,%xmm0
  lea    D126(%rip),%rdi
  mov    $0x1,%eax
  call   <q@plt>
  flds   0x1177(%rip)        # 24e8 <_fini+0x8fc>
  fstpt  (%rsp)
  mov    (%rsp),%rax
  mov    0x8(%rsp),%edx
  push   %rdx
  push   %rax
  lea    D624(%rip),%rdi
  mov    $0x0,%eax
  call   <q@plt>
  mov    D203(%rip),%rax
  movq   %rax,%xmm0
  lea    D599(%rip),%rdi
  mov    $0x1,%eax
  call   <q@plt>
  mov    D203(%rip),%rax
  movq   %rax,%xmm0
  lea    D281(%rip),%rdi
  mov    $0x1,%eax
  call   <q@plt>
  flds   0x1119(%rip)        # 24e8 <_fini+0x8fc>
  fstpt  0x10(%rsp)
  mov    0x10(%rsp),%rax
  mov    0x18(%rsp),%edx
  push   %rdx
  push   %rax
  lea    D551(%rip),%rdi
  mov    $0x0,%eax
  call   <q@plt>
  add    $0x20,%rsp
  mov    $0x2,%esi
  lea    D377(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x2,%esi
  lea    D409(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x2,%esi
  lea    D539(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    D399(%rip),%rax
  movq   %rax,%xmm0
  lea    D746(%rip),%rdi
  mov    $0x1,%eax
  call   <q@plt>
  mov    D399(%rip),%rax
  movq   %rax,%xmm0
  lea    D813(%rip),%rdi
  mov    $0x1,%eax
  call   <q@plt>
  flds   0x1077(%rip)        # 24ec <_fini+0x900>
  fstpt  (%rsp)
  mov    (%rsp),%rax
  mov    0x8(%rsp),%edx
  push   %rdx
  push   %rax
  lea    D233(%rip),%rdi
  mov    $0x0,%eax
  call   <q@plt>
  movsd  D417(%rip),%xmm0
  lea    D351(%rip),%rdi
  mov    $0x1,%eax
  call   <q@plt>
  movsd  D603(%rip),%xmm0
  lea    D556(%rip),%rdi
  mov    $0x1,%eax
  call   <q@plt>
  movsd  D429(%rip),%xmm0
  lea    D248(%rip),%rdi
  mov    $0x1,%eax
  call   <q@plt>
  push   $0x7fff
  push   $0xa
  movl   $0xc0000000,0x4(%rsp)
  lea    D207(%rip),%rdi
  mov    $0x0,%eax
  call   <q@plt>
  add    $0x20,%rsp
  movsd  D669(%rip),%xmm0
  lea    D580(%rip),%rdi
  mov    $0x1,%eax
  call   <q@plt>
  mov    $0x0,%esi
  lea    D587(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x0,%esi
  lea    D121(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x1,%esi
  lea    D464(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x1,%esi
  lea    D196(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x1,%esi
  lea    D250(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x0,%esi
  lea    D12(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x0,%esi
  lea    D210(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x0,%esi
  lea    D744(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x0,%esi
  lea    D542(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %ebx,%esi
  neg    %esi
  cmovs  %ebx,%esi
  lea    D679(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  bsr    %ebx,%esi
  xor    $0x1f,%esi
  lea    D134(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  movslq %ebx,%rbp
  bsr    %rbp,%rsi
  xor    $0x3f,%esi
  lea    D114(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  bsr    %rbp,%rsi
  xor    $0x3f,%esi
  lea    D22(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  xor    %r13d,%r13d
  tzcnt  %ebx,%r13d
  mov    %r13d,%esi
  lea    D328(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  xor    %r12d,%r12d
  tzcnt  %rbp,%r12
  mov    %r12d,%esi
  lea    D618(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %r12d,%esi
  lea    D454(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  bsf    %ebx,%esi
  mov    $0xffffffff,%esi
  cmovne %r13d,%esi
  add    $0x1,%esi
  lea    D288(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0xffffffffffffffff,%r13
  bsf    %rbp,%rax
  cmove  %r13,%rax
  lea    0x1(%rax),%esi
  lea    D296(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  bsf    %rbp,%rax
  cmove  %r13,%rax
  lea    0x1(%rax),%esi
  lea    D510(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %ebx,%eax
  shr    $0x10,%eax
  xor    %ebx,%eax
  xor    %ah,%al
  setnp  %sil
  movzbl %sil,%esi
  lea    D633(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %rbp,%r12
  shr    $0x20,%r12
  xor    %ebx,%r12d
  mov    %r12d,%r13d
  shr    $0x10,%r13d
  mov    %r12d,%eax
  xor    %r13d,%eax
  xor    %ah,%al
  setnp  %sil
  movzbl %sil,%esi
  lea    D144(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %r12d,%eax
  xor    %r13d,%eax
  xor    %ah,%al
  setnp  %sil
  movzbl %sil,%esi
  lea    D532(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %ebx,%edi
  call   <__popcountdi2>
  mov    %eax,%esi
  lea    D165(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %rbp,%rdi
  call   <__popcountdi2>
  mov    %eax,%r12d
  mov    %eax,%esi
  lea    D568(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %r12d,%esi
  lea    D155(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %ebx,%edi
  movsd  D467(%rip),%xmm0
  call   <__powidf2>
  lea    D332(%rip),%rdi
  mov    $0x1,%eax
  call   <q@plt>
  mov    %ebx,%edi
  movss  D694(%rip),%xmm0
  call   <__powisf2>
  cvtss2sd %xmm0,%xmm0
  lea    D64(%rip),%rdi
  mov    $0x1,%eax
  call   <q@plt>
  flds   0xcf7(%rip)        # 24f0 <_fini+0x904>
  fstpt  (%rsp)
  mov    (%rsp),%rax
  mov    0x8(%rsp),%edx
  push   %rdx
  push   %rax
  mov    %ebx,%edi
  call   <__powixf2>
  fstpt  (%rsp)
  lea    D205(%rip),%rdi
  mov    $0x0,%eax
  call   <q@plt>
  mov    $0x0,%eax
  call   <random@plt>
  mov    %eax,%r12d
  movl   $0x6c6c6548,0x28(%rsp)
  movw   $0x6f,0x2c(%rsp)
  lea    0x28(%rsp),%r14
  lea    0x2e(%rsp),%r13
  mov    %r14,%rsi
  mov    %r13,%rdi
  call   <strcat@plt>
  mov    $0x0,%esi
  lea    D590(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x0,%esi
  lea    D601(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  movslq %r12d,%r12
  mov    %r12,%rdx
  mov    %r14,%rsi
  mov    %r13,%rdi
  call   <strncat@plt>
  mov    $0x0,%esi
  lea    D480(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x0,%esi
  lea    D619(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x0,%esi
  lea    D355(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %r14,%rsi
  mov    %r13,%rdi
  call   <strcpy@plt>
  mov    $0x0,%esi
  lea    D583(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %r12,%rdx
  mov    %r14,%rsi
  mov    %r13,%rdi
  call   <strncpy@plt>
  mov    $0x0,%esi
  lea    D740(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x0,%esi
  lea    D15(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x0,%esi
  lea    D644(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0x0,%esi
  lea    D524(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %r12,%rcx
  mov    $0xa,%edx
  mov    %r14,%rsi
  mov    %r13,%rdi
  call   <__mempcpy_chk@plt>
  mov    $0x0,%esi
  lea    D768(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %r12,%rcx
  mov    $0xa,%edx
  mov    %r14,%rsi
  mov    %r13,%rdi
  call   <__strncpy_chk@plt>
  mov    $0x0,%esi
  lea    D719(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %r12,%rdx
  mov    %r14,%rsi
  mov    %r13,%rdi
  call   <__strcpy_chk@plt>
  mov    $0x0,%esi
  lea    D222(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  movb   $0x0,0x2e(%rsp)
  mov    %r12,%rdx
  mov    %r14,%rsi
  mov    %r13,%rdi
  call   <__strcat_chk@plt>
  mov    $0x0,%esi
  lea    D824(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0xa,%esi
  lea    D260(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0xa,%esi
  lea    D826(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0xa,%esi
  lea    D382(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    $0xa,%esi
  lea    D610(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %ebx,%esi
  rol    $0x8,%si
  movzwl %si,%esi
  lea    D702(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  bswap  %ebx
  mov    %ebx,%esi
  lea    D496(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  mov    %rbp,%rsi
  bswap  %rsi
  lea    D346(%rip),%rdi
  mov    $0x0,%eax
  call   <p@plt>
  ud2
```

tool_calls: name: disassemble_data
arguments: tag: D526
type_guessed: string
name: disassemble_data
arguments: tag: D274
type_guessed: string
name: disassemble_data
arguments: tag: D566
type_guessed: string
name: disassemble_data
arguments: tag: D87
type_guessed: string
name: disassemble_data
arguments: tag: D810
type_guessed: string
name: disassemble_data
arguments: tag: D364
type_guessed: string
name: disassemble_data
arguments: tag: D89
type_guessed: string
name: disassemble_data
arguments: tag: D203
type_guessed: byte[8]
name: disassemble_data
arguments: tag: D762
type_guessed: string
name: disassemble_data
arguments: tag: D126
type_guessed: string
name: disassemble_data
arguments: tag: D624
type_guessed: string
name: disassemble_data
arguments: tag: D599
type_guessed: string
name: disassemble_data
arguments: tag: D281
type_guessed: string
name: disassemble_data
arguments: tag: D551
type_guessed: string
name: disassemble_data
arguments: tag: D377
type_guessed: string
name: disassemble_data
arguments: tag: D409
type_guessed: string
name: disassemble_data
arguments: tag: D539
type_guessed: string
name: disassemble_data
arguments: tag: D399
type_guessed: byte[8]
name: disassemble_data
arguments: tag: D746
type_guessed: string
name: disassemble_data
arguments: tag: D813
type_guessed: string
name: disassemble_data
arguments: tag: D233
type_guessed: string
name: disassemble_data
arguments: tag: D417
type_guessed: byte[8]
name: disassemble_data
arguments: tag: D351
type_guessed: string
name: disassemble_data
arguments: tag: D603
type_guessed: byte[8]
name: disassemble_data
arguments: tag: D556
type_guessed: string
name: disassemble_data
arguments: tag: D429
type_guessed: f32[2]
name: disassemble_data
arguments: tag: D248
type_guessed: string
name: disassemble_data
arguments: tag: D207
type_guessed: string
name: disassemble_data
arguments: tag: D669
type_guessed: byte[8]
name: disassemble_data
arguments: tag: D580
type_guessed: string
name: disassemble_data
arguments: tag: D587
type_guessed: string
name: disassemble_data
arguments: tag: D121
type_guessed: string
name: disassemble_data
arguments: tag: D464
type_guessed: string
name: disassemble_data
arguments: tag: D196
type_guessed: string
name: disassemble_data
arguments: tag: D250
type_guessed: string
name: disassemble_data
arguments: tag: D12
type_guessed: string
name: disassemble_data
arguments: tag: D210
type_guessed: string
name: disassemble_data
arguments: tag: D744
type_guessed: string
name: disassemble_data
arguments: tag: D542
type_guessed: string
name: disassemble_data
arguments: tag: D679
type_guessed: string
name: disassemble_data
arguments: tag: D134
type_guessed: string
name: disassemble_data
arguments: tag: D114
type_guessed: string
name: disassemble_data
arguments: tag: D22
type_guessed: string
name: disassemble_data
arguments: tag: D328
type_guessed: string
name: disassemble_data
arguments: tag: D618
type_guessed: string
name: disassemble_data
arguments: tag: D454
type_guessed: string
name: disassemble_data
arguments: tag: D288
type_guessed: string
name: disassemble_data
arguments: tag: D296
type_guessed: string
name: disassemble_data
arguments: tag: D510
type_guessed: string
name: disassemble_data
arguments: tag: D633
type_guessed: string
name: disassemble_data
arguments: tag: D144
type_guessed: string
name: disassemble_data
arguments: tag: D532
type_guessed: string
name: disassemble_data
arguments: tag: D165
type_guessed: string
name: disassemble_data
arguments: tag: D568
type_guessed: string
name: disassemble_data
arguments: tag: D155
type_guessed: string
name: disassemble_data
arguments: tag: D467
type_guessed: f32[2]
name: disassemble_data
arguments: tag: D332
type_guessed: string
name: disassemble_data
arguments: tag: D694
type_guessed: byte[4]
name: disassemble_data
arguments: tag: D64
type_guessed: string
name: disassemble_data
arguments: tag: D205
type_guessed: string
name: disassemble_data
arguments: tag: D590
type_guessed: string
name: disassemble_data
arguments: tag: D601
type_guessed: string
name: disassemble_data
arguments: tag: D480
type_guessed: string
name: disassemble_data
arguments: tag: D619
type_guessed: string
name: disassemble_data
arguments: tag: D355
type_guessed: string
name: disassemble_data
arguments: tag: D583
type_guessed: string
name: disassemble_data
arguments: tag: D740
type_guessed: string
name: disassemble_data
arguments: tag: D15
type_guessed: string
name: disassemble_data
arguments: tag: D644
type_guessed: string
name: disassemble_data
arguments: tag: D524
type_guessed: string
name: disassemble_data
arguments: tag: D768
type_guessed: string
name: disassemble_data
arguments: tag: D719
type_guessed: string
name: disassemble_data
arguments: tag: D222
type_guessed: string
name: disassemble_data
arguments: tag: D824
type_guessed: string
name: disassemble_data
arguments: tag: D260
type_guessed: string
name: disassemble_data
arguments: tag: D826
type_guessed: string
name: disassemble_data
arguments: tag: D382
type_guessed: string
name: disassemble_data
arguments: tag: D610
type_guessed: string
name: disassemble_data
arguments: tag: D702
type_guessed: string
name: disassemble_data
arguments: tag: D496
type_guessed: string
name: disassemble_data
arguments: tag: D346
type_guessed: string

tool: D526: types_compatible_p(int, float)

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

tool: D566: constant_p(sizeof(10))

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

tool: D810: prefetch(&N)

tool: D364: prefetch(&N, 1)

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

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

tool: D762: huge_val()

tool: D126: huge_valf()

tool: D624: huge_vall()

tool: D599: inf()

tool: D281: inff()

tool: D551: infl()

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

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

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

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

tool: D746: nan("")

tool: D813: nanf("")

tool: D233: nanl("")

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

tool: D351: nans("")

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

tool: D556: nan("10")

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

tool: D248: nanf("10")

tool: D207: nanl("10")

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

tool: D580: nans("10")

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

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

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

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

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

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

tool: D210: isinf(1.)

tool: D744: isinf_sign(1.)

tool: D542: isnan(1.)

tool: D679: abs(N)

tool: D134: clz(N)

tool: D114: clzl(N)

tool: D22: clzll(N)

tool: D328: ctz(N)

tool: D618: ctzl(N)

tool: D454: ctzll(N)

tool: D288: ffs(N)

tool: D296: ffsl(N)

tool: D510: ffsll(N)

tool: D633: parity(N)

tool: D144: parityl(N)

tool: D532: parityll(N)

tool: D165: popcount(N)

tool: D568: popcountl(N)

tool: D155: popcountll(N)

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

tool: D332: powi(1.2f, N)

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

tool: D64: powif(1.2f, N)

tool: D205: powil(1.2f, N)

tool: D590: strcat(s0, s1)

tool: D601: strcmp(s0, s1)

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

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

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

tool: D583: strcpy(s0, s1)

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

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

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

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

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

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

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

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

tool: D260: object_size(s0, 0)

tool: D826: object_size(s0, 1)

tool: D382: object_size(s0, 2)

tool: D610: object_size(s0, 3)

tool: D702: bswap16(N)

tool: D496: bswap32(N)

tool: D346: bswap64(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("trap"
    "()",
    (__builtin_trap(), 0));
  r("extract_return_addr"
    "(&N)",
    __builtin_extract_return_addr(&N));
  p("signbit"
    "(1.0)",
    __builtin_signbit(1.0));
  return 0;
}
```