user: 下面的汇编指令对应的C源代码是什么:

```asm
<main>:
  endbr64
  sub    $0x5c8,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x5b8(%rsp)
  xor    %eax,%eax
  lea    0x9c(%rsp),%rax
  mov    %rax,0x8(%rsp)
  lock addq $0x3,0x8(%rsp)
  mov    0x8(%rsp),%rdx
  lea    0x9f(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x3,0x8(%rsp)
  mov    0x8(%rsp),%rsi
  lea    0xa2(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x3,0x8(%rsp)
  mov    0x8(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x3,0x8(%rsp)
  mov    0x8(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x6,0x8(%rsp)
  mov    0x8(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x6,0x8(%rsp)
  mov    0x8(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0xa5(%rsp),%rax
  mov    %rax,0x10(%rsp)
  lock addq $0x3,0x10(%rsp)
  mov    0x10(%rsp),%rdx
  lea    0xa8(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x3,0x10(%rsp)
  mov    0x10(%rsp),%rsi
  lea    0xab(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x3,0x10(%rsp)
  mov    0x10(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x3,0x10(%rsp)
  mov    0x10(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x6,0x10(%rsp)
  mov    0x10(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x6,0x10(%rsp)
  mov    0x10(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0xae(%rsp),%rax
  mov    %rax,0x18(%rsp)
  lock addq $0x3,0x18(%rsp)
  mov    0x18(%rsp),%rdx
  lea    0xb1(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x3,0x18(%rsp)
  mov    0x18(%rsp),%rsi
  lea    0xb4(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x3,0x18(%rsp)
  mov    0x18(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x3,0x18(%rsp)
  mov    0x18(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x6,0x18(%rsp)
  mov    0x18(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x6,0x18(%rsp)
  mov    0x18(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0xb7(%rsp),%rax
  mov    %rax,0x20(%rsp)
  lock addq $0x3,0x20(%rsp)
  mov    0x20(%rsp),%rdx
  lea    0xba(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x3,0x20(%rsp)
  mov    0x20(%rsp),%rsi
  lea    0xbd(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x3,0x20(%rsp)
  mov    0x20(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x3,0x20(%rsp)
  mov    0x20(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x6,0x20(%rsp)
  mov    0x20(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x6,0x20(%rsp)
  mov    0x20(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0xc0(%rsp),%rax
  mov    %rax,0x28(%rsp)
  lock addq $0x6,0x28(%rsp)
  mov    0x28(%rsp),%rdx
  lea    0xc6(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x6,0x28(%rsp)
  mov    0x28(%rsp),%rsi
  lea    0xcc(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x6,0x28(%rsp)
  mov    0x28(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x6,0x28(%rsp)
  mov    0x28(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0xc,0x28(%rsp)
  mov    0x28(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0xc,0x28(%rsp)
  mov    0x28(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0xe0(%rsp),%rax
  mov    %rax,0x30(%rsp)
  lock addq $0x6,0x30(%rsp)
  mov    0x30(%rsp),%rdx
  lea    0xe6(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x6,0x30(%rsp)
  mov    0x30(%rsp),%rsi
  lea    0xec(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x6,0x30(%rsp)
  mov    0x30(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x6,0x30(%rsp)
  mov    0x30(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0xc,0x30(%rsp)
  mov    0x30(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0xc,0x30(%rsp)
  mov    0x30(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0x100(%rsp),%rax
  mov    %rax,0x38(%rsp)
  lock addq $0xc,0x38(%rsp)
  mov    0x38(%rsp),%rdx
  lea    0x10c(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0xc,0x38(%rsp)
  mov    0x38(%rsp),%rsi
  lea    0x118(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0xc,0x38(%rsp)
  mov    0x38(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0xc,0x38(%rsp)
  mov    0x38(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x18,0x38(%rsp)
  mov    0x38(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x18,0x38(%rsp)
  mov    0x38(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0x130(%rsp),%rax
  mov    %rax,0x40(%rsp)
  lock addq $0xc,0x40(%rsp)
  mov    0x40(%rsp),%rdx
  lea    0x13c(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0xc,0x40(%rsp)
  mov    0x40(%rsp),%rsi
  lea    0x148(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0xc,0x40(%rsp)
  mov    0x40(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0xc,0x40(%rsp)
  mov    0x40(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x18,0x40(%rsp)
  mov    0x40(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x18,0x40(%rsp)
  mov    0x40(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0x190(%rsp),%rax
  mov    %rax,0x48(%rsp)
  lock addq $0x18,0x48(%rsp)
  mov    0x48(%rsp),%rdx
  lea    0x1a8(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x18,0x48(%rsp)
  mov    0x48(%rsp),%rsi
  lea    0x1c0(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x18,0x48(%rsp)
  mov    0x48(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x18,0x48(%rsp)
  mov    0x48(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x30,0x48(%rsp)
  mov    0x48(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x30,0x48(%rsp)
  mov    0x48(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0x1e0(%rsp),%rax
  mov    %rax,0x50(%rsp)
  lock addq $0x18,0x50(%rsp)
  mov    0x50(%rsp),%rdx
  lea    0x1f8(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x18,0x50(%rsp)
  mov    0x50(%rsp),%rsi
  lea    0x210(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x18,0x50(%rsp)
  mov    0x50(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x18,0x50(%rsp)
  mov    0x50(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x30,0x50(%rsp)
  mov    0x50(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x30,0x50(%rsp)
  mov    0x50(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0x230(%rsp),%rax
  mov    %rax,0x58(%rsp)
  lock addq $0x18,0x58(%rsp)
  mov    0x58(%rsp),%rdx
  lea    0x248(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x18,0x58(%rsp)
  mov    0x58(%rsp),%rsi
  lea    0x260(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x18,0x58(%rsp)
  mov    0x58(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x18,0x58(%rsp)
  mov    0x58(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x30,0x58(%rsp)
  mov    0x58(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x30,0x58(%rsp)
  mov    0x58(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0x280(%rsp),%rax
  mov    %rax,0x60(%rsp)
  lock addq $0x18,0x60(%rsp)
  mov    0x60(%rsp),%rdx
  lea    0x298(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x18,0x60(%rsp)
  mov    0x60(%rsp),%rsi
  lea    0x2b0(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x18,0x60(%rsp)
  mov    0x60(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x18,0x60(%rsp)
  mov    0x60(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x30,0x60(%rsp)
  mov    0x60(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x30,0x60(%rsp)
  mov    0x60(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0x160(%rsp),%rax
  mov    %rax,0x68(%rsp)
  lock addq $0xc,0x68(%rsp)
  mov    0x68(%rsp),%rdx
  lea    0x16c(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0xc,0x68(%rsp)
  mov    0x68(%rsp),%rsi
  lea    0x178(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0xc,0x68(%rsp)
  mov    0x68(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0xc,0x68(%rsp)
  mov    0x68(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x18,0x68(%rsp)
  mov    0x68(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x18,0x68(%rsp)
  mov    0x68(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0x2d0(%rsp),%rax
  mov    %rax,0x70(%rsp)
  lock addq $0x18,0x70(%rsp)
  mov    0x70(%rsp),%rdx
  lea    0x2e8(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x18,0x70(%rsp)
  mov    0x70(%rsp),%rsi
  lea    0x300(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x18,0x70(%rsp)
  mov    0x70(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x18,0x70(%rsp)
  mov    0x70(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x30,0x70(%rsp)
  mov    0x70(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x30,0x70(%rsp)
  mov    0x70(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0x370(%rsp),%rax
  mov    %rax,0x78(%rsp)
  lock addq $0x30,0x78(%rsp)
  mov    0x78(%rsp),%rdx
  lea    0x3a0(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x30,0x78(%rsp)
  mov    0x78(%rsp),%rsi
  lea    0x3d0(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x30,0x78(%rsp)
  mov    0x78(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x30,0x78(%rsp)
  mov    0x78(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x60,0x78(%rsp)
  mov    0x78(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x60,0x78(%rsp)
  mov    0x78(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0x320(%rsp),%rax
  mov    %rax,0x80(%rsp)
  lock addq $0x18,0x80(%rsp)
  mov    0x80(%rsp),%rdx
  lea    0x338(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x18,0x80(%rsp)
  mov    0x80(%rsp),%rsi
  lea    0x350(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x18,0x80(%rsp)
  mov    0x80(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x18,0x80(%rsp)
  mov    0x80(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x30,0x80(%rsp)
  mov    0x80(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x30,0x80(%rsp)
  mov    0x80(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0x400(%rsp),%rax
  mov    %rax,0x88(%rsp)
  lock addq $0x30,0x88(%rsp)
  mov    0x88(%rsp),%rdx
  lea    0x430(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x30,0x88(%rsp)
  mov    0x88(%rsp),%rsi
  lea    0x460(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x30,0x88(%rsp)
  mov    0x88(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x30,0x88(%rsp)
  mov    0x88(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0x60,0x88(%rsp)
  mov    0x88(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0x60,0x88(%rsp)
  mov    0x88(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  lea    0x490(%rsp),%rax
  mov    %rax,0x90(%rsp)
  lock addq $0x60,0x90(%rsp)
  mov    0x90(%rsp),%rdx
  lea    0x4f0(%rsp),%rcx
  cmp    %rdx,%rcx
  jne    1080 <main.cold>
  lock addq $0x60,0x90(%rsp)
  mov    0x90(%rsp),%rsi
  lea    0x550(%rsp),%rdx
  cmp    %rsi,%rdx
  jne    1080 <main.cold>
  lock subq $0x60,0x90(%rsp)
  mov    0x90(%rsp),%rsi
  cmp    %rsi,%rcx
  jne    1080 <main.cold>
  lock subq $0x60,0x90(%rsp)
  mov    0x90(%rsp),%rcx
  cmp    %rcx,%rax
  jne    1080 <main.cold>
  lock addq $0xc0,0x90(%rsp)
  mov    0x90(%rsp),%rcx
  cmp    %rcx,%rdx
  jne    1080 <main.cold>
  lock subq $0xc0,0x90(%rsp)
  mov    0x90(%rsp),%rdx
  cmp    %rdx,%rax
  jne    1080 <main.cold>
  mov    0x5b8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L7
  xor    %eax,%eax
  add    $0x5c8,%rsp
  ret
L7:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
int main(void) {
  do {
    _Bool a[3][3];
    _Bool(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    char a[3][3];
    char(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    signed char a[3][3];
    signed char(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    unsigned char a[3][3];
    unsigned char(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    signed short a[3][3];
    signed short(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    unsigned short a[3][3];
    unsigned short(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    signed int a[3][3];
    signed int(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    unsigned int a[3][3];
    unsigned int(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    signed long a[3][3];
    signed long(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    unsigned long a[3][3];
    unsigned long(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    signed long long a[3][3];
    signed long long(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    unsigned long long a[3][3];
    unsigned long long(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    float a[3][3];
    float(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    double a[3][3];
    double(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    long double a[3][3];
    long double(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    _Complex float a[3][3];
    _Complex float(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    _Complex double a[3][3];
    _Complex double(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
  do {
    _Complex long double a[3][3];
    _Complex long double(*_Atomic q)[3] = &a[0];
    ++q;
    if (q != &a[1])
      __builtin_abort();
    q++;
    if (q != &a[2])
      __builtin_abort();
    --q;
    if (q != &a[1])
      __builtin_abort();
    q--;
    if (q != &a[0])
      __builtin_abort();
    q += 2;
    if (q != &a[2])
      __builtin_abort();
    q -= 2;
    if (q != &a[0])
      __builtin_abort();
  } while (0);
}
```