user: Converte this assembly snippet into its equivalent C code:

```asm
<test_collapse>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  movl   $0x0,-0x14(%rbp)
  jmp    L434
L348:
  addl   $0x1,-0x14(%rbp)
L434:
  cmpl   $0xf,-0x14(%rbp)
  jle    L348
  movl   $0x0,-0x14(%rbp)
  jmp    L45
L363:
  addl   $0x1,-0x14(%rbp)
L45:
  cmpl   $0xf,-0x14(%rbp)
  jle    L363
  movl   $0x0,-0x14(%rbp)
  jmp    L85
L126:
  addl   $0x1,-0x14(%rbp)
L85:
  cmpl   $0xf,-0x14(%rbp)
  jle    L126
  movl   $0x0,-0x14(%rbp)
  jmp    L308
L202:
  addl   $0x1,-0x14(%rbp)
L308:
  cmpl   $0xf,-0x14(%rbp)
  jle    L202
  movl   $0x0,-0x14(%rbp)
  jmp    L165
L420:
  addl   $0x1,-0x14(%rbp)
L165:
  cmpl   $0xf,-0x14(%rbp)
  jle    L420
  movl   $0x0,-0x14(%rbp)
  jmp    L427
L271:
  addl   $0x1,-0x14(%rbp)
L427:
  cmpl   $0xf,-0x14(%rbp)
  jle    L271
  movl   $0x0,-0x14(%rbp)
  jmp    L398
L127:
  addl   $0x1,-0x14(%rbp)
L398:
  cmpl   $0xf,-0x14(%rbp)
  jle    L127
  movl   $0x0,-0x14(%rbp)
  jmp    L3
L274:
  addl   $0x1,-0x14(%rbp)
L3:
  cmpl   $0xf,-0x14(%rbp)
  jle    L274
  movl   $0x0,-0x14(%rbp)
  jmp    L358
L382:
  addl   $0x1,-0x14(%rbp)
L358:
  cmpl   $0xf,-0x14(%rbp)
  jle    L382
  movl   $0x0,-0x14(%rbp)
  jmp    L90
L250:
  addl   $0x1,-0x14(%rbp)
L90:
  cmpl   $0xf,-0x14(%rbp)
  jle    L250
  movl   $0x0,-0x14(%rbp)
  jmp    L344
L407:
  addl   $0x1,-0x14(%rbp)
L344:
  cmpl   $0xf,-0x14(%rbp)
  jle    L407
  movl   $0x0,-0x14(%rbp)
  jmp    L42
L297:
  addl   $0x1,-0x14(%rbp)
L42:
  cmpl   $0xf,-0x14(%rbp)
  jle    L297
  movl   $0x0,-0x10(%rbp)
  jmp    L255
L20:
  movl   $0x0,-0xc(%rbp)
  jmp    L424
L205:
  movl   $0x0,-0x8(%rbp)
  jmp    L349
L155:
  movl   $0x0,-0x4(%rbp)
  jmp    L303
L375:
  mov    $0x0,%eax
  call   <foo@plt>
  addl   $0x1,-0x4(%rbp)
L303:
  cmpl   $0xf,-0x4(%rbp)
  jle    L375
  addl   $0x1,-0x8(%rbp)
L349:
  cmpl   $0xf,-0x8(%rbp)
  jle    L155
  addl   $0x1,-0xc(%rbp)
L424:
  cmpl   $0xf,-0xc(%rbp)
  jle    L205
  addl   $0x1,-0x10(%rbp)
L255:
  cmpl   $0xf,-0x10(%rbp)
  jle    L20
  movl   $0x0,-0x14(%rbp)
  jmp    L413
L314:
  addl   $0x1,-0x14(%rbp)
L413:
  cmpl   $0xf,-0x14(%rbp)
  jle    L314
  movl   $0x0,-0x14(%rbp)
  jmp    L174
L281:
  addl   $0x1,-0x14(%rbp)
L174:
  cmpl   $0xf,-0x14(%rbp)
  jle    L281
  movl   $0x0,-0x14(%rbp)
  jmp    L283
L199:
  addl   $0x1,-0x14(%rbp)
L283:
  cmpl   $0xf,-0x14(%rbp)
  jle    L199
  movl   $0x0,-0x14(%rbp)
  jmp    L95
L333:
  addl   $0x1,-0x14(%rbp)
L95:
  cmpl   $0xf,-0x14(%rbp)
  jle    L333
  movl   $0x0,-0x14(%rbp)
  jmp    L113
L379:
  addl   $0x1,-0x14(%rbp)
L113:
  cmpl   $0xf,-0x14(%rbp)
  jle    L379
  movl   $0x0,-0x14(%rbp)
  jmp    L93
L111:
  addl   $0x1,-0x14(%rbp)
L93:
  cmpl   $0xf,-0x14(%rbp)
  jle    L111
  nop
  nop
  leave
  ret
```

assistant: ```c
void test_collapse() {
  int i;
#pragma omp parallel for collapse
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse()
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(,
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(, )
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse 4)
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(4
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(4,
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(4, )
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(4)
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(4 4)
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(4, , 4)
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(4)
  for (int i1 = 0; i1 < 16; ++i1)
    for (int i2 = 0; i2 < 16; ++i2)
      for (int i3 = 0; i3 < 16; ++i3)
        for (int i4 = 0; i4 < 16; ++i4)
          foo();
#pragma omp parallel for collapse(4, 8)
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(2.5)
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(foo())
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(-5)
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(0)
  for (i = 0; i < 16; ++i)
    ;
#pragma omp parallel for collapse(5 - 5)
  for (i = 0; i < 16; ++i)
    ;
}
```