user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<test_or>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x130,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x7856,-0x108(%rbp)
  movzbl D234(%rip),%eax
  mov    %al,-0x12a(%rbp)
L478:
  movzbl -0x12a(%rbp),%eax
  movzbl %al,%edx
  mov    -0x108(%rbp),%eax
  or     %edx,%eax
  test   %eax,%eax
  setne  %al
  mov    %al,-0x129(%rbp)
  movzbl -0x129(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x12a(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x2e89(%rip)        # 4030 <a.23>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L436
  mov    %cl,(%rdx)
L436:
  test   %al,%al
  jne    L345
  jmp    L478
L345:
  movzbl -0x129(%rbp),%eax
  xor    $0x1,%eax
  test   %al,%al
  je     L92
  call   <abort@plt>
L92:
  movzbl D234(%rip),%eax
  mov    %al,-0x128(%rbp)
  movzbl -0x128(%rbp),%eax
  xor    $0x1,%eax
  test   %al,%al
  je     L474
  call   <abort@plt>
L474:
  movl   $0x7856,-0x104(%rbp)
  mov    -0x104(%rbp),%eax
  movzbl %al,%ecx
  movzbl D188(%rip),%eax
L43:
  mov    %eax,%edx
  or     %ecx,%edx
  mov    %edx,%esi
  lock cmpxchg %dl,0x2e1e(%rip)        # 4031 <a.22>
  sete   %dl
  test   %dl,%dl
  je     L43
  mov    %esi,%eax
  mov    %al,-0x127(%rbp)
  movzbl -0x127(%rbp),%eax
  cmp    $0x76,%al
  je     L627
  call   <abort@plt>
L627:
  movzbl D188(%rip),%eax
  mov    %al,-0x126(%rbp)
  movzbl -0x126(%rbp),%eax
  cmp    $0x76,%al
  je     L754
  call   <abort@plt>
L754:
  movl   $0x7856,-0x100(%rbp)
  mov    -0x100(%rbp),%eax
  movzbl %al,%ecx
  movzbl D244(%rip),%eax
L305:
  mov    %eax,%edx
  or     %ecx,%edx
  mov    %edx,%esi
  lock cmpxchg %dl,0x2dbb(%rip)        # 4032 <a.21>
  sete   %dl
  test   %dl,%dl
  je     L305
  mov    %esi,%eax
  mov    %al,-0x125(%rbp)
  movzbl -0x125(%rbp),%eax
  cmp    $0x76,%al
  je     L554
  call   <abort@plt>
L554:
  movzbl D244(%rip),%eax
  mov    %al,-0x124(%rbp)
  movzbl -0x124(%rbp),%eax
  cmp    $0x76,%al
  je     L547
  call   <abort@plt>
L547:
  movl   $0x7856,-0xfc(%rbp)
  mov    -0xfc(%rbp),%eax
  movzbl %al,%esi
  movzbl D60(%rip),%eax
L181:
  mov    %eax,%edx
  or     %esi,%edx
  mov    %edx,%ecx
  lock cmpxchg %dl,0x2d58(%rip)        # 4033 <a.20>
  sete   %dl
  test   %dl,%dl
  je     L181
  mov    %cl,-0x123(%rbp)
  movzbl -0x123(%rbp),%eax
  cmp    $0x76,%al
  je     L368
  call   <abort@plt>
L368:
  movzbl D60(%rip),%eax
  mov    %al,-0x122(%rbp)
  movzbl -0x122(%rbp),%eax
  cmp    $0x76,%al
  je     L704
  call   <abort@plt>
L704:
  movl   $0x7856,-0xf8(%rbp)
  mov    -0xf8(%rbp),%eax
  movzwl %ax,%ecx
  movzwl D132(%rip),%eax
L572:
  mov    %eax,%edx
  or     %ecx,%edx
  mov    %edx,%esi
  lock cmpxchg %dx,0x2cf6(%rip)        # 4034 <a.19>
  sete   %dl
  test   %dl,%dl
  je     L572
  mov    %esi,%eax
  mov    %ax,-0x118(%rbp)
  movzwl -0x118(%rbp),%eax
  cmp    $0x7a76,%ax
  je     L262
  call   <abort@plt>
L262:
  movzwl D132(%rip),%eax
  mov    %ax,-0x116(%rbp)
  movzwl -0x116(%rbp),%eax
  cmp    $0x7a76,%ax
  je     L185
  call   <abort@plt>
L185:
  movl   $0x7856,-0xf4(%rbp)
  mov    -0xf4(%rbp),%eax
  movzwl %ax,%esi
  movzwl D634(%rip),%eax
L324:
  mov    %eax,%edx
  or     %esi,%edx
  mov    %edx,%ecx
  lock cmpxchg %dx,0x2c8d(%rip)        # 4036 <a.18>
  sete   %dl
  test   %dl,%dl
  je     L324
  mov    %cx,-0x114(%rbp)
  movzwl -0x114(%rbp),%eax
  cmp    $0x7a76,%ax
  je     L759
  call   <abort@plt>
L759:
  movzwl D634(%rip),%eax
  mov    %ax,-0x112(%rbp)
  movzwl -0x112(%rbp),%eax
  cmp    $0x7a76,%ax
  je     L679
  call   <abort@plt>
L679:
  movl   $0x7856,-0xf0(%rbp)
  mov    -0xf0(%rbp),%eax
  mov    %eax,%esi
  mov    D416(%rip),%eax
L494:
  mov    %eax,%edx
  or     %esi,%edx
  mov    %edx,%ecx
  lock cmpxchg %edx,0x2c29(%rip)        # 4038 <a.17>
  sete   %dl
  test   %dl,%dl
  je     L494
  mov    %ecx,%eax
  mov    %eax,-0xec(%rbp)
  mov    -0xec(%rbp),%eax
  cmp    $0x7a76,%eax
  je     L749
  call   <abort@plt>
L749:
  mov    D416(%rip),%eax
  mov    %eax,-0xe8(%rbp)
  mov    -0xe8(%rbp),%eax
  cmp    $0x7a76,%eax
  je     L371
  call   <abort@plt>
L371:
  movl   $0x7856,-0xe4(%rbp)
  mov    -0xe4(%rbp),%eax
  mov    %eax,%esi
  mov    D329(%rip),%eax
L204:
  mov    %eax,%edx
  or     %esi,%edx
  mov    %edx,%ecx
  lock cmpxchg %edx,0x2bc8(%rip)        # 403c <a.16>
  sete   %dl
  test   %dl,%dl
  je     L204
  mov    %ecx,-0xe0(%rbp)
  mov    -0xe0(%rbp),%eax
  cmp    $0x7a76,%eax
  je     L673
  call   <abort@plt>
L673:
  mov    D329(%rip),%eax
  mov    %eax,-0xdc(%rbp)
  mov    -0xdc(%rbp),%eax
  cmp    $0x7a76,%eax
  je     L549
  call   <abort@plt>
L549:
  movl   $0x7856,-0xd8(%rbp)
  mov    -0xd8(%rbp),%eax
  movslq %eax,%rcx
  mov    D443(%rip),%rax
L566:
  mov    %rax,%rdx
  or     %rcx,%rdx
  mov    %rdx,%rsi
  lock cmpxchg %rdx,0x2b63(%rip)        # 4040 <a.15>
  sete   %dl
  test   %dl,%dl
  je     L566
  mov    %rsi,%rax
  mov    %rax,-0x88(%rbp)
  mov    -0x88(%rbp),%rax
  cmp    $0x7a76,%rax
  je     L329
  call   <abort@plt>
L329:
  mov    D443(%rip),%rax
  mov    %rax,-0x80(%rbp)
  mov    -0x80(%rbp),%rax
  cmp    $0x7a76,%rax
  je     L582
  call   <abort@plt>
L582:
  movl   $0x7856,-0xd4(%rbp)
  mov    -0xd4(%rbp),%eax
  movslq %eax,%rsi
  mov    D708(%rip),%rax
L634:
  mov    %rax,%rdx
  or     %rsi,%rdx
  mov    %rdx,%rcx
  lock cmpxchg %rdx,0x2afe(%rip)        # 4048 <a.14>
  sete   %dl
  test   %dl,%dl
  je     L634
  mov    %rcx,-0x78(%rbp)
  mov    -0x78(%rbp),%rax
  cmp    $0x7a76,%rax
  je     L282
  call   <abort@plt>
L282:
  mov    D708(%rip),%rax
  mov    %rax,-0x70(%rbp)
  mov    -0x70(%rbp),%rax
  cmp    $0x7a76,%rax
  je     L155
  call   <abort@plt>
L155:
  movl   $0x7856,-0xd0(%rbp)
  mov    -0xd0(%rbp),%eax
  movslq %eax,%rcx
  mov    D670(%rip),%rax
L736:
  mov    %rax,%rdx
  or     %rcx,%rdx
  mov    %rdx,%rsi
  lock cmpxchg %rdx,0x2aa2(%rip)        # 4050 <a.13>
  sete   %dl
  test   %dl,%dl
  je     L736
  mov    %rsi,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x68(%rbp),%rax
  cmp    $0x7a76,%rax
  je     L313
  call   <abort@plt>
L313:
  mov    D670(%rip),%rax
  mov    %rax,-0x60(%rbp)
  mov    -0x60(%rbp),%rax
  cmp    $0x7a76,%rax
  je     L56
  call   <abort@plt>
L56:
  movl   $0x7856,-0xcc(%rbp)
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    D226(%rip),%rax
L716:
  mov    %rax,%rdx
  or     %rsi,%rdx
  mov    %rdx,%rcx
  lock cmpxchg %rdx,0x2a43(%rip)        # 4058 <a.12>
  sete   %dl
  test   %dl,%dl
  je     L716
  mov    %rcx,-0x58(%rbp)
  mov    -0x58(%rbp),%rax
  cmp    $0x7a76,%rax
  je     L686
  call   <abort@plt>
L686:
  mov    D226(%rip),%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x50(%rbp),%rax
  cmp    $0x7a76,%rax
  je     L312
  call   <abort@plt>
L312:
  movl   $0x12345678,-0xc8(%rbp)
  movzbl D215(%rip),%eax
  mov    %al,-0x121(%rbp)
L578:
  movzbl -0x121(%rbp),%eax
  movzbl %al,%edx
  mov    -0xc8(%rbp),%eax
  or     %edx,%eax
  test   %eax,%eax
  setne  %al
  mov    %al,-0x120(%rbp)
  movzbl -0x120(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x121(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x29c3(%rip)        # 4060 <a.11>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L420
  mov    %cl,(%rdx)
L420:
  test   %al,%al
  jne    L353
  jmp    L578
L353:
  movzbl -0x120(%rbp),%eax
  xor    $0x1,%eax
  test   %al,%al
  je     L291
  call   <abort@plt>
L291:
  movzbl D215(%rip),%eax
  mov    %al,-0x11f(%rbp)
  movzbl -0x11f(%rbp),%eax
  xor    $0x1,%eax
  test   %al,%al
  je     L70
  call   <abort@plt>
L70:
  movl   $0x12345678,-0xc4(%rbp)
  mov    -0xc4(%rbp),%eax
  movzbl %al,%ecx
  movzbl D687(%rip),%eax
L709:
  mov    %eax,%edx
  or     %ecx,%edx
  mov    %edx,%esi
  lock cmpxchg %dl,0x2958(%rip)        # 4061 <a.10>
  sete   %dl
  test   %dl,%dl
  je     L709
  mov    %esi,%eax
  mov    %al,-0x11e(%rbp)
  movzbl -0x11e(%rbp),%eax
  cmp    $0xff,%al
  je     L391
  call   <abort@plt>
L391:
  movzbl D687(%rip),%eax
  mov    %al,-0x11d(%rbp)
  movzbl -0x11d(%rbp),%eax
  cmp    $0xff,%al
  je     L255
  call   <abort@plt>
L255:
  movl   $0x12345678,-0xc0(%rbp)
  mov    -0xc0(%rbp),%eax
  movzbl %al,%ecx
  movzbl D85(%rip),%eax
L350:
  mov    %eax,%edx
  or     %ecx,%edx
  mov    %edx,%esi
  lock cmpxchg %dl,0x28f5(%rip)        # 4062 <a.9>
  sete   %dl
  test   %dl,%dl
  je     L350
  mov    %esi,%eax
  mov    %al,-0x11c(%rbp)
  movzbl -0x11c(%rbp),%eax
  cmp    $0xff,%al
  je     L430
  call   <abort@plt>
L430:
  movzbl D85(%rip),%eax
  mov    %al,-0x11b(%rbp)
  movzbl -0x11b(%rbp),%eax
  cmp    $0xff,%al
  je     L233
  call   <abort@plt>
L233:
  movl   $0x12345678,-0xbc(%rbp)
  mov    -0xbc(%rbp),%eax
  movzbl %al,%esi
  movzbl D126(%rip),%eax
L534:
  mov    %eax,%edx
  or     %esi,%edx
  mov    %edx,%ecx
  lock cmpxchg %dl,0x2892(%rip)        # 4063 <a.8>
  sete   %dl
  test   %dl,%dl
  je     L534
  mov    %cl,-0x11a(%rbp)
  movzbl -0x11a(%rbp),%eax
  cmp    $0xff,%al
  je     L15
  call   <abort@plt>
L15:
  movzbl D126(%rip),%eax
  mov    %al,-0x119(%rbp)
  movzbl -0x119(%rbp),%eax
  cmp    $0xff,%al
  je     L372
  call   <abort@plt>
L372:
  movl   $0x12345678,-0xb8(%rbp)
  mov    -0xb8(%rbp),%eax
  movzwl %ax,%ecx
  movzwl D357(%rip),%eax
L2:
  mov    %eax,%edx
  or     %ecx,%edx
  mov    %edx,%esi
  lock cmpxchg %dx,0x2830(%rip)        # 4064 <a.7>
  sete   %dl
  test   %dl,%dl
  je     L2
  mov    %esi,%eax
  mov    %ax,-0x110(%rbp)
  movzwl -0x110(%rbp),%eax
  cmp    $0xdfff,%ax
  je     L555
  call   <abort@plt>
L555:
  movzwl D357(%rip),%eax
  mov    %ax,-0x10e(%rbp)
  movzwl -0x10e(%rbp),%eax
  cmp    $0xdfff,%ax
  je     L710
  call   <abort@plt>
L710:
  movl   $0x12345678,-0xb4(%rbp)
  mov    -0xb4(%rbp),%eax
  movzwl %ax,%esi
  movzwl D208(%rip),%eax
L516:
  mov    %eax,%edx
  or     %esi,%edx
  mov    %edx,%ecx
  lock cmpxchg %dx,0x27c7(%rip)        # 4066 <a.6>
  sete   %dl
  test   %dl,%dl
  je     L516
  mov    %cx,-0x10c(%rbp)
  movzwl -0x10c(%rbp),%eax
  cmp    $0xdfff,%ax
  je     L261
  call   <abort@plt>
L261:
  movzwl D208(%rip),%eax
  mov    %ax,-0x10a(%rbp)
  movzwl -0x10a(%rbp),%eax
  cmp    $0xdfff,%ax
  je     L701
  call   <abort@plt>
L701:
  movl   $0x12345678,-0xb0(%rbp)
  mov    -0xb0(%rbp),%eax
  mov    %eax,%esi
  mov    D586(%rip),%eax
L600:
  mov    %eax,%edx
  or     %esi,%edx
  mov    %edx,%ecx
  lock cmpxchg %edx,0x2763(%rip)        # 4068 <a.5>
  sete   %dl
  test   %dl,%dl
  je     L600
  mov    %ecx,%eax
  mov    %eax,-0xac(%rbp)
  mov    -0xac(%rbp),%eax
  cmp    $0xffffdfff,%eax
  je     L624
  call   <abort@plt>
L624:
  mov    D586(%rip),%eax
  mov    %eax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%eax
  cmp    $0xffffdfff,%eax
  je     L531
  call   <abort@plt>
L531:
  movl   $0x12345678,-0xa4(%rbp)
  mov    -0xa4(%rbp),%eax
  mov    %eax,%esi
  mov    D206(%rip),%eax
L671:
  mov    %eax,%edx
  or     %esi,%edx
  mov    %edx,%ecx
  lock cmpxchg %edx,0x2702(%rip)        # 406c <a.4>
  sete   %dl
  test   %dl,%dl
  je     L671
  mov    %ecx,-0xa0(%rbp)
  mov    -0xa0(%rbp),%eax
  cmp    $0xffffdfff,%eax
  je     L230
  call   <abort@plt>
L230:
  mov    D206(%rip),%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0x9c(%rbp),%eax
  cmp    $0xffffdfff,%eax
  je     L406
  call   <abort@plt>
L406:
  movl   $0x12345678,-0x98(%rbp)
  mov    -0x98(%rbp),%eax
  movslq %eax,%rcx
  mov    D248(%rip),%rax
L326:
  mov    %rax,%rdx
  or     %rcx,%rdx
  mov    %rdx,%rsi
  lock cmpxchg %rdx,0x269d(%rip)        # 4070 <a.3>
  sete   %dl
  test   %dl,%dl
  je     L326
  mov    %rsi,%rax
  mov    %rax,-0x48(%rbp)
  mov    -0x48(%rbp),%rax
  cmp    $0xffffffffffffdfff,%rax
  je     L219
  call   <abort@plt>
L219:
  mov    D248(%rip),%rax
  mov    %rax,-0x40(%rbp)
  mov    -0x40(%rbp),%rax
  cmp    $0xffffffffffffdfff,%rax
  je     L274
  call   <abort@plt>
L274:
  movl   $0x12345678,-0x94(%rbp)
  mov    -0x94(%rbp),%eax
  movslq %eax,%rsi
  mov    D289(%rip),%rax
L570:
  mov    %rax,%rdx
  or     %rsi,%rdx
  mov    %rdx,%rcx
  lock cmpxchg %rdx,0x263e(%rip)        # 4078 <a.2>
  sete   %dl
  test   %dl,%dl
  je     L570
  mov    %rcx,-0x38(%rbp)
  mov    -0x38(%rbp),%rax
  cmp    $0xffffffffffffdfff,%rax
  je     L713
  call   <abort@plt>
L713:
  mov    D289(%rip),%rax
  mov    %rax,-0x30(%rbp)
  mov    -0x30(%rbp),%rax
  cmp    $0xffffffffffffdfff,%rax
  je     L367
  call   <abort@plt>
L367:
  movl   $0x12345678,-0x90(%rbp)
  mov    -0x90(%rbp),%eax
  movslq %eax,%rcx
  mov    D666(%rip),%rax
L189:
  mov    %rax,%rdx
  or     %rcx,%rdx
  mov    %rdx,%rsi
  lock cmpxchg %rdx,0x25e2(%rip)        # 4080 <a.1>
  sete   %dl
  test   %dl,%dl
  je     L189
  mov    %rsi,%rax
  mov    %rax,-0x28(%rbp)
  mov    -0x28(%rbp),%rax
  cmp    $0xffffffffffffdfff,%rax
  je     L19
  call   <abort@plt>
L19:
  mov    D666(%rip),%rax
  mov    %rax,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  cmp    $0xffffffffffffdfff,%rax
  je     L498
  call   <abort@plt>
L498:
  movl   $0x12345678,-0x8c(%rbp)
  mov    -0x8c(%rbp),%eax
  movslq %eax,%rsi
  mov    D684(%rip),%rax
L453:
  mov    %rax,%rdx
  or     %rsi,%rdx
  mov    %rdx,%rcx
  lock cmpxchg %rdx,0x2583(%rip)        # 4088 <a.0>
  sete   %dl
  test   %dl,%dl
  je     L453
  mov    %rcx,-0x18(%rbp)
  mov    -0x18(%rbp),%rax
  cmp    $0xffffffffffffdfff,%rax
  je     L10
  call   <abort@plt>
L10:
  mov    D684(%rip),%rax
  mov    %rax,-0x10(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0xffffffffffffdfff,%rax
  je     L168
  call   <abort@plt>
L168:
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L316
  call   <__stack_chk_fail@plt>
L316:
  leave
  ret
```

assistant: ```c
void test_or(void) {
  do {
    do {
      static volatile _Atomic(_Bool) a = (_Bool)((0x1234));
      if ((a |= ((0x7856))) != (_Bool)((_Bool)((0x1234)) | ((0x7856))))
        abort();
      if (a != (_Bool)((_Bool)((0x1234)) | ((0x7856))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(char) a = (char)((0x1234));
      if ((a |= ((0x7856))) != (char)((char)((0x1234)) | ((0x7856))))
        abort();
      if (a != (char)((char)((0x1234)) | ((0x7856))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed char) a = (signed char)((0x1234));
      if ((a |= ((0x7856))) != (signed char)((signed char)((0x1234)) | ((0x7856))))
        abort();
      if (a != (signed char)((signed char)((0x1234)) | ((0x7856))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned char) a = (unsigned char)((0x1234));
      if ((a |= ((0x7856))) != (unsigned char)((unsigned char)((0x1234)) | ((0x7856))))
        abort();
      if (a != (unsigned char)((unsigned char)((0x1234)) | ((0x7856))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed short) a = (signed short)((0x1234));
      if ((a |= ((0x7856))) != (signed short)((signed short)((0x1234)) | ((0x7856))))
        abort();
      if (a != (signed short)((signed short)((0x1234)) | ((0x7856))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned short) a = (unsigned short)((0x1234));
      if ((a |= ((0x7856))) != (unsigned short)((unsigned short)((0x1234)) | ((0x7856))))
        abort();
      if (a != (unsigned short)((unsigned short)((0x1234)) | ((0x7856))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed int) a = (signed int)((0x1234));
      if ((a |= ((0x7856))) != (signed int)((signed int)((0x1234)) | ((0x7856))))
        abort();
      if (a != (signed int)((signed int)((0x1234)) | ((0x7856))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned int) a = (unsigned int)((0x1234));
      if ((a |= ((0x7856))) != (unsigned int)((unsigned int)((0x1234)) | ((0x7856))))
        abort();
      if (a != (unsigned int)((unsigned int)((0x1234)) | ((0x7856))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed long) a = (signed long)((0x1234));
      if ((a |= ((0x7856))) != (signed long)((signed long)((0x1234)) | ((0x7856))))
        abort();
      if (a != (signed long)((signed long)((0x1234)) | ((0x7856))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned long) a = (unsigned long)((0x1234));
      if ((a |= ((0x7856))) != (unsigned long)((unsigned long)((0x1234)) | ((0x7856))))
        abort();
      if (a != (unsigned long)((unsigned long)((0x1234)) | ((0x7856))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed long long) a = (signed long long)((0x1234));
      if ((a |= ((0x7856))) != (signed long long)((signed long long)((0x1234)) | ((0x7856))))
        abort();
      if (a != (signed long long)((signed long long)((0x1234)) | ((0x7856))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned long long) a = (unsigned long long)((0x1234));
      if ((a |= ((0x7856))) != (unsigned long long)((unsigned long long)((0x1234)) | ((0x7856))))
        abort();
      if (a != (unsigned long long)((unsigned long long)((0x1234)) | ((0x7856))))
        abort();
    } while (0);
  } while (0);
  do {
    do {
      static volatile _Atomic(_Bool) a = (_Bool)((-12345));
      if ((a |= ((0x12345678))) != (_Bool)((_Bool)((-12345)) | ((0x12345678))))
        abort();
      if (a != (_Bool)((_Bool)((-12345)) | ((0x12345678))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(char) a = (char)((-12345));
      if ((a |= ((0x12345678))) != (char)((char)((-12345)) | ((0x12345678))))
        abort();
      if (a != (char)((char)((-12345)) | ((0x12345678))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed char) a = (signed char)((-12345));
      if ((a |= ((0x12345678))) != (signed char)((signed char)((-12345)) | ((0x12345678))))
        abort();
      if (a != (signed char)((signed char)((-12345)) | ((0x12345678))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned char) a = (unsigned char)((-12345));
      if ((a |= ((0x12345678))) != (unsigned char)((unsigned char)((-12345)) | ((0x12345678))))
        abort();
      if (a != (unsigned char)((unsigned char)((-12345)) | ((0x12345678))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed short) a = (signed short)((-12345));
      if ((a |= ((0x12345678))) != (signed short)((signed short)((-12345)) | ((0x12345678))))
        abort();
      if (a != (signed short)((signed short)((-12345)) | ((0x12345678))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned short) a = (unsigned short)((-12345));
      if ((a |= ((0x12345678))) != (unsigned short)((unsigned short)((-12345)) | ((0x12345678))))
        abort();
      if (a != (unsigned short)((unsigned short)((-12345)) | ((0x12345678))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed int) a = (signed int)((-12345));
      if ((a |= ((0x12345678))) != (signed int)((signed int)((-12345)) | ((0x12345678))))
        abort();
      if (a != (signed int)((signed int)((-12345)) | ((0x12345678))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned int) a = (unsigned int)((-12345));
      if ((a |= ((0x12345678))) != (unsigned int)((unsigned int)((-12345)) | ((0x12345678))))
        abort();
      if (a != (unsigned int)((unsigned int)((-12345)) | ((0x12345678))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed long) a = (signed long)((-12345));
      if ((a |= ((0x12345678))) != (signed long)((signed long)((-12345)) | ((0x12345678))))
        abort();
      if (a != (signed long)((signed long)((-12345)) | ((0x12345678))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned long) a = (unsigned long)((-12345));
      if ((a |= ((0x12345678))) != (unsigned long)((unsigned long)((-12345)) | ((0x12345678))))
        abort();
      if (a != (unsigned long)((unsigned long)((-12345)) | ((0x12345678))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed long long) a = (signed long long)((-12345));
      if ((a |= ((0x12345678))) != (signed long long)((signed long long)((-12345)) | ((0x12345678))))
        abort();
      if (a != (signed long long)((signed long long)((-12345)) | ((0x12345678))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned long long) a = (unsigned long long)((-12345));
      if ((a |= ((0x12345678))) != (unsigned long long)((unsigned long long)((-12345)) | ((0x12345678))))
        abort();
      if (a != (unsigned long long)((unsigned long long)((-12345)) | ((0x12345678))))
        abort();
    } while (0);
  } while (0);
}
```