#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ dosomething(int *, int, int);
void test(int n, int o, int p, int q, int r, int s, int *pp) {
  int a[o], i, j;
#pragma omp target data device(n + 1) if (n != 6) map(tofrom : n, r)
  {
#pragma omp target device(n + 1) if (n != 6) map(from                          \
                                                 : n) map(alloc                \
                                                          : a [2:o - 2])
    dosomething(a, n, 0);
#pragma omp target teams device (n + 1) num_teams (n + 4) thread_limit (n * 2) if (n != 6)map (from: n) map (alloc: a[2:o-2]) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r)
    {
      r = r + 1;
      p = q;
      dosomething(a, n, p + q);
    }
#pragma omp target teams distribute device (n + 1) num_teams (n + 4) collapse (2) if (n != 6)map (from: n) map (alloc: a[2:o-2]) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        dosomething(a, n, p + q);
      }
#pragma omp target teams distribute device (n + 1) num_teams (n + 4) if (n != 6)map (from: n) map (alloc: a[2:o-2]) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        dosomething(a, n, p + q);
      }
#pragma omp target teams distribute parallel for device (n + 1) num_teams (n + 4) if (n != 6)map (from: n) map (alloc: a[2:o-2]) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4) collapse (2) num_threads (n + 4) proc_bind (spread) lastprivate (s) schedule (static, 8)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        dosomething(a, n, p + q);
        p = q;
        s = i * 10 + j;
      }
#pragma omp target teams distribute parallel for device (n + 1) num_teams (n + 4) if (n != 6)map (from: n) map (alloc: a[2:o-2]) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4) num_threads (n + 4) proc_bind (master) lastprivate (s) schedule (static, 8)
    for (i = 0; i < 10; i++) {
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        dosomething(a, n, p + q);
      }
      p = q;
      s = i * 10;
    }
#pragma omp target teams distribute parallel for simd device (n + 1) if (n != 6)map (from: n) map (alloc: a[2:o-2]) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4) collapse (2) num_threads (n + 4) proc_bind (spread) lastprivate (s) schedule (static, 8) num_teams (n + 4) safelen(8)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        a[2 + i * 10 + j] = p + q;
        s = i * 10 + j;
      }
#pragma omp target teams distribute parallel for simd device (n + 1) if (n != 6)map (from: n) map (alloc: a[2:o-2]) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4) num_threads (n + 4) proc_bind (master) lastprivate (s) schedule (static, 8) num_teams (n + 4) safelen(16) linear(i:1) aligned (pp:4)
    for (i = 0; i < 10; i++) {
      r = r + 1;
      p = q;
      a[2 + i] = p + q;
      s = i * 10;
    }
#pragma omp target teams distribute simd device (n + 1) if (n != 6)map (from: n) map (alloc: a[2:o-2]) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4) collapse (2) lastprivate (s) num_teams (n + 4) safelen(8)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        a[2 + i * 10 + j] = p + q;
        s = i * 10 + j;
      }
#pragma omp target teams distribute simd device (n + 1) if (n != 6)map (from: n) map (alloc: a[2:o-2]) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4) lastprivate (s) num_teams (n + 4) safelen(16) linear(i:1) aligned (pp:4)
    for (i = 0; i < 10; i++) {
      r = r + 1;
      p = q;
      a[2 + i] = p + q;
      s = i * 10;
    }
#pragma omp target device(n + 1) if (n != 6) map(from                          \
                                                 : n) map(alloc                \
                                                          : a [2:o - 2])
#pragma omp teams num_teams (n + 4) thread_limit (n * 2) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r)
    {
      r = r + 1;
      p = q;
      dosomething(a, n, p + q);
    }
#pragma omp target device(n + 1) if (n != 6) map(from                          \
                                                 : n) map(alloc                \
                                                          : a [2:o - 2])
#pragma omp teams distribute num_teams (n + 4) collapse (2) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        dosomething(a, n, p + q);
      }
#pragma omp target device(n + 1) if (n != 6) map(from                          \
                                                 : n) map(alloc                \
                                                          : a [2:o - 2])
#pragma omp teams distribute num_teams (n + 4) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        dosomething(a, n, p + q);
      }
#pragma omp target device(n + 1) if (n != 6) map(from                          \
                                                 : n) map(alloc                \
                                                          : a [2:o - 2])
#pragma omp teams distribute parallel for num_teams (n + 4) if (n != 6) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4) collapse (2) num_threads (n + 4) proc_bind (spread) lastprivate (s) schedule (static, 8)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        dosomething(a, n, p + q);
        p = q;
        s = i * 10 + j;
      }
#pragma omp target device(n + 1) if (n != 6) map(from                          \
                                                 : n) map(alloc                \
                                                          : a [2:o - 2])
#pragma omp teams distribute parallel for num_teams (n + 4) if (n != 6) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4) num_threads (n + 4) proc_bind (master) lastprivate (s) schedule (static, 8)
    for (i = 0; i < 10; i++) {
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        dosomething(a, n, p + q);
      }
      p = q;
      s = i * 10;
    }
#pragma omp target device(n + 1) if (n != 6) map(from                          \
                                                 : n) map(alloc                \
                                                          : a [2:o - 2])
#pragma omp teams distribute parallel for simd if (n != 6)default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4) collapse (2) num_threads (n + 4) proc_bind (spread) lastprivate (s) schedule (static, 8) num_teams (n + 4) safelen(8)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        a[2 + i * 10 + j] = p + q;
        s = i * 10 + j;
      }
#pragma omp target device(n + 1) if (n != 6) map(from                          \
                                                 : n) map(alloc                \
                                                          : a [2:o - 2])
#pragma omp teams distribute parallel for simd if (n != 6)default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4) num_threads (n + 4) proc_bind (master) lastprivate (s) schedule (static, 8) num_teams (n + 4) safelen(16) linear(i:1) aligned (pp:4)
    for (i = 0; i < 10; i++) {
      r = r + 1;
      p = q;
      a[2 + i] = p + q;
      s = i * 10;
    }
#pragma omp target device(n + 1) if (n != 6) map(from                          \
                                                 : n) map(alloc                \
                                                          : a [2:o - 2])
#pragma omp teams distribute simd default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4) collapse (2) lastprivate (s) num_teams (n + 4) safelen(8)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        a[2 + i * 10 + j] = p + q;
        s = i * 10 + j;
      }
#pragma omp target device(n + 1) if (n != 6) map(from                          \
                                                 : n) map(alloc                \
                                                          : a [2:o - 2])
#pragma omp teams distribute simd default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) thread_limit (n * 2) dist_schedule (static, 4) lastprivate (s) num_teams (n + 4) safelen(16) linear(i:1) aligned (pp:4)
    for (i = 0; i < 10; i++) {
      r = r + 1;
      p = q;
      a[2 + i] = p + q;
      s = i * 10;
    }
#pragma omp target teams device (n + 1) if (n != 6)map(from:n) map(alloc:a[2:o-2]) num_teams (n + 4) thread_limit (n * 2)default(shared) shared(n) private (p) reduction (+: r)
#pragma omp distribute collapse(2) dist_schedule(static, 4) firstprivate(q)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        dosomething(a, n, p + q);
      }
#pragma omp target teams device (n + 1) if (n != 6)map(from:n) map(alloc:a[2:o-2]) num_teams (n + 4) thread_limit (n * 2) shared(n) private(p) reduction (+ : r) default(shared)
#pragma omp distribute dist_schedule(static, 4) firstprivate(q)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        dosomething(a, n, p + q);
      }
#pragma omp target teams device(n + 1) if (n != 6) map(from                    \
                                                       : n) map(alloc          \
                                                                : a [2:o - 2]) \
    num_teams(n + 4) thread_limit(n * 2)
#pragma omp distribute parallel for if (n != 6) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) collapse (2) dist_schedule (static, 4) num_threads (n + 4) proc_bind (spread) lastprivate (s) schedule (static, 8)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        dosomething(a, n, p + q);
        p = q;
        s = i * 10 + j;
      }
#pragma omp target teams device(n + 1) if (n != 6) map(from                    \
                                                       : n) map(alloc          \
                                                                : a [2:o - 2]) \
    num_teams(n + 4) thread_limit(n * 2)
#pragma omp distribute parallel for if (n != 6) default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) num_threads (n + 4) dist_schedule (static, 4) proc_bind (master) lastprivate (s) schedule (static, 8)
    for (i = 0; i < 10; i++) {
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        dosomething(a, n, p + q);
      }
      p = q;
      s = i * 10;
    }
#pragma omp target teams device(n + 1) if (n != 6) map(from                    \
                                                       : n) map(alloc          \
                                                                : a [2:o - 2]) \
    num_teams(n + 4) thread_limit(n * 2)
#pragma omp distribute parallel for simd if (n != 6)default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) collapse (2) dist_schedule (static, 4) num_threads (n + 4) proc_bind (spread) lastprivate (s) schedule (static, 8) safelen(8)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        a[2 + i * 10 + j] = p + q;
        s = i * 10 + j;
      }
#pragma omp target teams device(n + 1) if (n != 6) map(from                    \
                                                       : n) map(alloc          \
                                                                : a [2:o - 2]) \
    num_teams(n + 4) thread_limit(n * 2)
#pragma omp distribute parallel for simd if (n != 6)default(shared) private (p) firstprivate (q) shared (n) reduction (+: r) num_threads (n + 4) dist_schedule (static, 4) proc_bind (master) lastprivate (s) schedule (static, 8) safelen(16) linear(i:1) aligned (pp:4)
    for (i = 0; i < 10; i++) {
      r = r + 1;
      p = q;
      a[2 + i] = p + q;
      s = i * 10;
    }
#pragma omp target teams device (n + 1) if (n != 6)map(from:n) map(alloc:a[2:o-2]) num_teams (n + 4) thread_limit (n * 2) default(shared) shared(n) private(p) reduction(+:r)
#pragma omp distribute simd private (p) firstprivate (q) reduction (+: r) collapse (2) dist_schedule (static, 4) lastprivate (s) safelen(8)
    for (i = 0; i < 10; i++)
      for (j = 0; j < 10; j++) {
        r = r + 1;
        p = q;
        a[2 + i * 10 + j] = p + q;
        s = i * 10 + j;
      }
#pragma omp target teams device (n + 1) if (n != 6)map(from:n) map(alloc:a[2:o-2]) num_teams (n + 4) thread_limit (n * 2) default(shared) shared(n) private(p) reduction(+:r)
#pragma omp distribute simd private (p) firstprivate (q) reduction (+: r) lastprivate (s) dist_schedule (static, 4) safelen(16) linear(i:1) aligned (pp:4)
    for (i = 0; i < 10; i++) {
      r = r + 1;
      p = q;
      a[2 + i] = p + q;
      s = i * 10;
    }
  }
}


x86 assembly (clang, -O0):
<test>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    0x10(%rbp),%rax
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    %r8d,-0x14(%rbp)
mov    %r9d,-0x18(%rbp)
mov    -0x8(%rbp),%eax
mov    %rsp,%rcx
mov    %rcx,-0x20(%rbp)
lea    0xf(,%rax,4),%rcx
and    $0xfffffffffffffff0,%rcx
mov    %rsp,%rdi
sub    %rcx,%rdi
mov    %rdi,-0x38(%rbp)
mov    %rdi,%rsp
mov    %rax,-0x28(%rbp)
mov    -0x4(%rbp),%esi
xor    %edx,%edx
call   1030 <dosomething@plt>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    11e6 <test+0xd6>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    11d3 <test+0xc3>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    119a <test+0x8a>
jmp    11d8 <test+0xc8>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1189 <test+0x79>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    124a <test+0x13a>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    1237 <test+0x127>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    11fe <test+0xee>
jmp    123c <test+0x12c>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    11ed <test+0xdd>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    12be <test+0x1ae>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    12ab <test+0x19b>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
imul   $0xa,-0x2c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    1262 <test+0x152>
jmp    12b0 <test+0x1a0>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1251 <test+0x141>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    132a <test+0x21a>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    130f <test+0x1ff>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    12d6 <test+0x1c6>
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
imul   $0xa,-0x2c(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    12c5 <test+0x1b5>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    13a0 <test+0x290>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    138d <test+0x27d>
mov    -0x38(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
mov    %ecx,-0x14(%rbp)
mov    -0x10(%rbp),%ecx
mov    %ecx,-0xc(%rbp)
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
imul   $0xa,-0x2c(%rbp),%ecx
add    $0x2,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0xa,-0x2c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    1342 <test+0x232>
jmp    1392 <test+0x282>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1331 <test+0x221>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    13eb <test+0x2db>
mov    -0x38(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
mov    %ecx,-0x14(%rbp)
mov    -0x10(%rbp),%ecx
mov    %ecx,-0xc(%rbp)
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
mov    -0x2c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0xa,-0x2c(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    13a7 <test+0x297>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1461 <test+0x351>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    144e <test+0x33e>
mov    -0x38(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
mov    %ecx,-0x14(%rbp)
mov    -0x10(%rbp),%ecx
mov    %ecx,-0xc(%rbp)
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
imul   $0xa,-0x2c(%rbp),%ecx
add    $0x2,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0xa,-0x2c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    1403 <test+0x2f3>
jmp    1453 <test+0x343>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    13f2 <test+0x2e2>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    14ac <test+0x39c>
mov    -0x38(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
mov    %ecx,-0x14(%rbp)
mov    -0x10(%rbp),%ecx
mov    %ecx,-0xc(%rbp)
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
mov    -0x2c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0xa,-0x2c(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1468 <test+0x358>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1531 <test+0x421>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    151e <test+0x40e>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    14e5 <test+0x3d5>
jmp    1523 <test+0x413>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    14d4 <test+0x3c4>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1595 <test+0x485>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    1582 <test+0x472>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    1549 <test+0x439>
jmp    1587 <test+0x477>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1538 <test+0x428>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1609 <test+0x4f9>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    15f6 <test+0x4e6>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
imul   $0xa,-0x2c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    15ad <test+0x49d>
jmp    15fb <test+0x4eb>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    159c <test+0x48c>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1675 <test+0x565>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    165a <test+0x54a>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    1621 <test+0x511>
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
imul   $0xa,-0x2c(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1610 <test+0x500>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    16eb <test+0x5db>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    16d8 <test+0x5c8>
mov    -0x38(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
mov    %ecx,-0x14(%rbp)
mov    -0x10(%rbp),%ecx
mov    %ecx,-0xc(%rbp)
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
imul   $0xa,-0x2c(%rbp),%ecx
add    $0x2,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0xa,-0x2c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    168d <test+0x57d>
jmp    16dd <test+0x5cd>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    167c <test+0x56c>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1736 <test+0x626>
mov    -0x38(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
mov    %ecx,-0x14(%rbp)
mov    -0x10(%rbp),%ecx
mov    %ecx,-0xc(%rbp)
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
mov    -0x2c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0xa,-0x2c(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    16f2 <test+0x5e2>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    17ac <test+0x69c>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    1799 <test+0x689>
mov    -0x38(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
mov    %ecx,-0x14(%rbp)
mov    -0x10(%rbp),%ecx
mov    %ecx,-0xc(%rbp)
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
imul   $0xa,-0x2c(%rbp),%ecx
add    $0x2,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0xa,-0x2c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    174e <test+0x63e>
jmp    179e <test+0x68e>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    173d <test+0x62d>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    17f7 <test+0x6e7>
mov    -0x38(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
mov    %ecx,-0x14(%rbp)
mov    -0x10(%rbp),%ecx
mov    %ecx,-0xc(%rbp)
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
mov    -0x2c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0xa,-0x2c(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    17b3 <test+0x6a3>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    185b <test+0x74b>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    1848 <test+0x738>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    180f <test+0x6ff>
jmp    184d <test+0x73d>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    17fe <test+0x6ee>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    18bf <test+0x7af>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    18ac <test+0x79c>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    1873 <test+0x763>
jmp    18b1 <test+0x7a1>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1862 <test+0x752>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1933 <test+0x823>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    1920 <test+0x810>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
imul   $0xa,-0x2c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    18d7 <test+0x7c7>
jmp    1925 <test+0x815>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    18c6 <test+0x7b6>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    199f <test+0x88f>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    1984 <test+0x874>
mov    -0x38(%rbp),%rdi
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0x4(%rbp),%esi
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
call   1030 <dosomething@plt>
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    194b <test+0x83b>
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
imul   $0xa,-0x2c(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    193a <test+0x82a>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1a15 <test+0x905>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    1a02 <test+0x8f2>
mov    -0x38(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
mov    %ecx,-0x14(%rbp)
mov    -0x10(%rbp),%ecx
mov    %ecx,-0xc(%rbp)
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
imul   $0xa,-0x2c(%rbp),%ecx
add    $0x2,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0xa,-0x2c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    19b7 <test+0x8a7>
jmp    1a07 <test+0x8f7>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    19a6 <test+0x896>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1a60 <test+0x950>
mov    -0x38(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
mov    %ecx,-0x14(%rbp)
mov    -0x10(%rbp),%ecx
mov    %ecx,-0xc(%rbp)
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
mov    -0x2c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0xa,-0x2c(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1a1c <test+0x90c>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1ad6 <test+0x9c6>
movl   $0x0,-0x30(%rbp)
cmpl   $0xa,-0x30(%rbp)
jge    1ac3 <test+0x9b3>
mov    -0x38(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
mov    %ecx,-0x14(%rbp)
mov    -0x10(%rbp),%ecx
mov    %ecx,-0xc(%rbp)
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
imul   $0xa,-0x2c(%rbp),%ecx
add    $0x2,%ecx
add    -0x30(%rbp),%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0xa,-0x2c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    1a78 <test+0x968>
jmp    1ac8 <test+0x9b8>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1a67 <test+0x957>
movl   $0x0,-0x2c(%rbp)
cmpl   $0xa,-0x2c(%rbp)
jge    1b21 <test+0xa11>
mov    -0x38(%rbp),%rax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
mov    %ecx,-0x14(%rbp)
mov    -0x10(%rbp),%ecx
mov    %ecx,-0xc(%rbp)
mov    -0xc(%rbp),%edx
add    -0x10(%rbp),%edx
mov    -0x2c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
imul   $0xa,-0x2c(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1add <test+0x9cd>
mov    -0x20(%rbp),%rax
mov    %rax,%rsp
mov    %rbp,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<test>:
push   %rbp
mov    %rsp,%rbp
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x10,%rsp
mov    %ecx,%r14d
mov    %edi,%r15d
mov    %esi,%eax
mov    %rsp,%rbx
lea    0xf(,%rax,4),%rax
and    $0xfffffffffffffff0,%rax
sub    %rax,%rbx
mov    %rbx,%rsp
mov    %rbx,%rdi
mov    %r15d,%esi
xor    %edx,%edx
call   1030 <dosomething@plt>
add    %r14d,%r14d
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    $0xa,%r12d
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
add    $0xffffffff,%r12d
jne    1160 <test+0x50>
mov    $0xa,%r12d
nopl   0x0(%rax)
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
add    $0xffffffff,%r12d
jne    1200 <test+0xf0>
mov    $0xa,%r12d
nopl   0x0(%rax)
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
add    $0xffffffff,%r12d
jne    12a0 <test+0x190>
mov    $0xa,%r12d
nopl   0x0(%rax)
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
add    $0xffffffff,%r12d
jne    1340 <test+0x230>
movd   %r14d,%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqu %xmm0,0x8(%rbx)
movdqu %xmm0,0x18(%rbx)
movdqu %xmm0,0x28(%rbx)
movdqu %xmm0,0x38(%rbx)
movdqu %xmm0,0x48(%rbx)
movdqu %xmm0,0x58(%rbx)
movdqu %xmm0,0x68(%rbx)
movdqu %xmm0,0x78(%rbx)
movdqu %xmm0,0x88(%rbx)
movdqu %xmm0,0x98(%rbx)
movdqu %xmm0,0xa8(%rbx)
movdqu %xmm0,0xb8(%rbx)
movdqu %xmm0,0xc8(%rbx)
movdqu %xmm0,0xd8(%rbx)
movdqu %xmm0,0xe8(%rbx)
movdqu %xmm0,0xf8(%rbx)
movdqu %xmm0,0x108(%rbx)
movdqu %xmm0,0x118(%rbx)
movdqu %xmm0,0x128(%rbx)
movdqu %xmm0,0x138(%rbx)
movdqu %xmm0,0x148(%rbx)
movdqu %xmm0,0x158(%rbx)
movdqu %xmm0,0x168(%rbx)
movdqu %xmm0,0x178(%rbx)
movdqu %xmm0,0x188(%rbx)
movdqu %xmm0,0x8(%rbx)
movdqu %xmm0,0x18(%rbx)
movdqu %xmm0,0x28(%rbx)
movdqu %xmm0,0x38(%rbx)
movdqu %xmm0,0x48(%rbx)
movdqa %xmm0,-0x30(%rbp)
movdqu %xmm0,0x58(%rbx)
mov    %r14d,0x28(%rbx)
mov    %r14d,0x2c(%rbx)
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    $0xa,%r12d
nop
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
add    $0xffffffff,%r12d
jne    14d0 <test+0x3c0>
mov    $0xa,%r12d
nopl   0x0(%rax)
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
add    $0xffffffff,%r12d
jne    1570 <test+0x460>
mov    $0xa,%r12d
nopl   0x0(%rax)
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
add    $0xffffffff,%r12d
jne    1610 <test+0x500>
mov    $0xa,%r12d
nopl   0x0(%rax)
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
add    $0xffffffff,%r12d
jne    16b0 <test+0x5a0>
movaps -0x30(%rbp),%xmm0
movups %xmm0,0x8(%rbx)
movups %xmm0,0x18(%rbx)
movups %xmm0,0x28(%rbx)
movups %xmm0,0x38(%rbx)
movups %xmm0,0x48(%rbx)
movups %xmm0,0x58(%rbx)
movups %xmm0,0x68(%rbx)
movups %xmm0,0x78(%rbx)
movups %xmm0,0x88(%rbx)
movups %xmm0,0x98(%rbx)
movups %xmm0,0xa8(%rbx)
movups %xmm0,0xb8(%rbx)
movups %xmm0,0xc8(%rbx)
movups %xmm0,0xd8(%rbx)
movups %xmm0,0xe8(%rbx)
movups %xmm0,0xf8(%rbx)
movups %xmm0,0x108(%rbx)
movups %xmm0,0x118(%rbx)
movups %xmm0,0x128(%rbx)
movups %xmm0,0x138(%rbx)
movups %xmm0,0x148(%rbx)
movups %xmm0,0x158(%rbx)
movups %xmm0,0x168(%rbx)
movups %xmm0,0x178(%rbx)
movups %xmm0,0x188(%rbx)
movups %xmm0,0x8(%rbx)
movups %xmm0,0x18(%rbx)
movups %xmm0,0x28(%rbx)
movups %xmm0,0x38(%rbx)
movups %xmm0,0x48(%rbx)
movups %xmm0,0x58(%rbx)
mov    %r14d,0x28(%rbx)
mov    %r14d,0x2c(%rbx)
mov    $0xa,%r12d
nopw   0x0(%rax,%rax,1)
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
add    $0xffffffff,%r12d
jne    1810 <test+0x700>
mov    $0xa,%r12d
nopl   0x0(%rax)
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
add    $0xffffffff,%r12d
jne    18b0 <test+0x7a0>
mov    $0xa,%r12d
nopl   0x0(%rax)
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
add    $0xffffffff,%r12d
jne    1950 <test+0x840>
mov    $0xa,%r12d
nopl   0x0(%rax)
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14d,%edx
call   1030 <dosomething@plt>
add    $0xffffffff,%r12d
jne    19f0 <test+0x8e0>
lea    -0x20(%rbp),%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @test(i32 %0, i32 %1, i32 %2, i32 %3, i32 %4, i32 %5, i32* %6) {
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32*
%15 = alloca i8*
%16 = alloca i64
%17 = alloca i32
%18 = alloca i32
store i32 %0, i32* %8
store i32 %1, i32* %9
store i32 %2, i32* %10
store i32 %3, i32* %11
store i32 %4, i32* %12
store i32 %5, i32* %13
store i32* %6, i32** %14
%19 = load i32, i32* %9
%20 = zext i32 %19 to i64
%21 = call i8* @llvm.stacksave()
store i8* %21, i8** %15
%22 = alloca i32, i64 %20
store i64 %20, i64* %16
%23 = load i32, i32* %8
%24 = call i32 @dosomething(i32* %22, i32 %23, i32 0)
%25 = load i32, i32* %12
%26 = add nsw i32 %25, 1
store i32 %26, i32* %12
%27 = load i32, i32* %11
store i32 %27, i32* %10
%28 = load i32, i32* %8
%29 = load i32, i32* %10
%30 = load i32, i32* %11
%31 = add nsw i32 %29, %30
%32 = call i32 @dosomething(i32* %22, i32 %28, i32 %31)
store i32 0, i32* %17
br label %33
33: ; preds = %53, %7
%34 = load i32, i32* %17
%35 = icmp slt i32 %34, 10
br i1 %35, label %36, label %56
36: ; preds = %33
store i32 0, i32* %18
br label %37
37: ; preds = %49, %36
%38 = load i32, i32* %18
%39 = icmp slt i32 %38, 10
br i1 %39, label %40, label %52
40: ; preds = %37
%41 = load i32, i32* %12
%42 = add nsw i32 %41, 1
store i32 %42, i32* %12
%43 = load i32, i32* %11
store i32 %43, i32* %10
%44 = load i32, i32* %8
%45 = load i32, i32* %10
%46 = load i32, i32* %11
%47 = add nsw i32 %45, %46
%48 = call i32 @dosomething(i32* %22, i32 %44, i32 %47)
br label %49
49: ; preds = %40
%50 = load i32, i32* %18
%51 = add nsw i32 %50, 1
store i32 %51, i32* %18
br label %37
52: ; preds = %37
br label %53
53: ; preds = %52
%54 = load i32, i32* %17
%55 = add nsw i32 %54, 1
store i32 %55, i32* %17
br label %33
56: ; preds = %33
store i32 0, i32* %17
br label %57
57: ; preds = %77, %56
%58 = load i32, i32* %17
%59 = icmp slt i32 %58, 10
br i1 %59, label %60, label %80
60: ; preds = %57
store i32 0, i32* %18
br label %61
61: ; preds = %73, %60
%62 = load i32, i32* %18
%63 = icmp slt i32 %62, 10
br i1 %63, label %64, label %76
64: ; preds = %61
%65 = load i32, i32* %12
%66 = add nsw i32 %65, 1
store i32 %66, i32* %12
%67 = load i32, i32* %11
store i32 %67, i32* %10
%68 = load i32, i32* %8
%69 = load i32, i32* %10
%70 = load i32, i32* %11
%71 = add nsw i32 %69, %70
%72 = call i32 @dosomething(i32* %22, i32 %68, i32 %71)
br label %73
73: ; preds = %64
%74 = load i32, i32* %18
%75 = add nsw i32 %74, 1
store i32 %75, i32* %18
br label %61
76: ; preds = %61
br label %77
77: ; preds = %76
%78 = load i32, i32* %17
%79 = add nsw i32 %78, 1
store i32 %79, i32* %17
br label %57
80: ; preds = %57
store i32 0, i32* %17
br label %81
81: ; preds = %106, %80
%82 = load i32, i32* %17
%83 = icmp slt i32 %82, 10
br i1 %83, label %84, label %109
84: ; preds = %81
store i32 0, i32* %18
br label %85
85: ; preds = %102, %84
%86 = load i32, i32* %18
%87 = icmp slt i32 %86, 10
br i1 %87, label %88, label %105
88: ; preds = %85
%89 = load i32, i32* %12
%90 = add nsw i32 %89, 1
store i32 %90, i32* %12
%91 = load i32, i32* %11
store i32 %91, i32* %10
%92 = load i32, i32* %8
%93 = load i32, i32* %10
%94 = load i32, i32* %11
%95 = add nsw i32 %93, %94
%96 = call i32 @dosomething(i32* %22, i32 %92, i32 %95)
%97 = load i32, i32* %11
store i32 %97, i32* %10
%98 = load i32, i32* %17
%99 = mul nsw i32 %98, 10
%100 = load i32, i32* %18
%101 = add nsw i32 %99, %100
store i32 %101, i32* %13
br label %102
102: ; preds = %88
%103 = load i32, i32* %18
%104 = add nsw i32 %103, 1
store i32 %104, i32* %18
br label %85
105: ; preds = %85
br label %106
106: ; preds = %105
%107 = load i32, i32* %17
%108 = add nsw i32 %107, 1
store i32 %108, i32* %17
br label %81
109: ; preds = %81
store i32 0, i32* %17
br label %110
110: ; preds = %133, %109
%111 = load i32, i32* %17
%112 = icmp slt i32 %111, 10
br i1 %112, label %113, label %136
113: ; preds = %110
store i32 0, i32* %18
br label %114
114: ; preds = %126, %113
%115 = load i32, i32* %18
%116 = icmp slt i32 %115, 10
br i1 %116, label %117, label %129
117: ; preds = %114
%118 = load i32, i32* %12
%119 = add nsw i32 %118, 1
store i32 %119, i32* %12
%120 = load i32, i32* %11
store i32 %120, i32* %10
%121 = load i32, i32* %8
%122 = load i32, i32* %10
%123 = load i32, i32* %11
%124 = add nsw i32 %122, %123
%125 = call i32 @dosomething(i32* %22, i32 %121, i32 %124)
br label %126
126: ; preds = %117
%127 = load i32, i32* %18
%128 = add nsw i32 %127, 1
store i32 %128, i32* %18
br label %114
129: ; preds = %114
%130 = load i32, i32* %11
store i32 %130, i32* %10
%131 = load i32, i32* %17
%132 = mul nsw i32 %131, 10
store i32 %132, i32* %13
br label %133
133: ; preds = %129
%134 = load i32, i32* %17
%135 = add nsw i32 %134, 1
store i32 %135, i32* %17
br label %110
136: ; preds = %110
store i32 0, i32* %17
br label %137
137: ; preds = %166, %136
%138 = load i32, i32* %17
%139 = icmp slt i32 %138, 10
br i1 %139, label %140, label %169
140: ; preds = %137
store i32 0, i32* %18
br label %141
141: ; preds = %162, %140
%142 = load i32, i32* %18
%143 = icmp slt i32 %142, 10
br i1 %143, label %144, label %165
144: ; preds = %141
%145 = load i32, i32* %12
%146 = add nsw i32 %145, 1
store i32 %146, i32* %12
%147 = load i32, i32* %11
store i32 %147, i32* %10
%148 = load i32, i32* %10
%149 = load i32, i32* %11
%150 = add nsw i32 %148, %149
%151 = load i32, i32* %17
%152 = mul nsw i32 %151, 10
%153 = add nsw i32 2, %152
%154 = load i32, i32* %18
%155 = add nsw i32 %153, %154
%156 = sext i32 %155 to i64
%157 = getelementptr inbounds i32, i32* %22, i64 %156
store i32 %150, i32* %157
%158 = load i32, i32* %17
%159 = mul nsw i32 %158, 10
%160 = load i32, i32* %18
%161 = add nsw i32 %159, %160
store i32 %161, i32* %13
br label %162
162: ; preds = %144
%163 = load i32, i32* %18
%164 = add nsw i32 %163, 1
store i32 %164, i32* %18
br label %141
165: ; preds = %141
br label %166
166: ; preds = %165
%167 = load i32, i32* %17
%168 = add nsw i32 %167, 1
store i32 %168, i32* %17
br label %137
169: ; preds = %137
store i32 0, i32* %17
br label %170
170: ; preds = %186, %169
%171 = load i32, i32* %17
%172 = icmp slt i32 %171, 10
br i1 %172, label %173, label %189
173: ; preds = %170
%174 = load i32, i32* %12
%175 = add nsw i32 %174, 1
store i32 %175, i32* %12
%176 = load i32, i32* %11
store i32 %176, i32* %10
%177 = load i32, i32* %10
%178 = load i32, i32* %11
%179 = add nsw i32 %177, %178
%180 = load i32, i32* %17
%181 = add nsw i32 2, %180
%182 = sext i32 %181 to i64
%183 = getelementptr inbounds i32, i32* %22, i64 %182
store i32 %179, i32* %183
%184 = load i32, i32* %17
%185 = mul nsw i32 %184, 10
store i32 %185, i32* %13
br label %186
186: ; preds = %173
%187 = load i32, i32* %17
%188 = add nsw i32 %187, 1
store i32 %188, i32* %17
br label %170
189: ; preds = %170
store i32 0, i32* %17
br label %190
190: ; preds = %219, %189
%191 = load i32, i32* %17
%192 = icmp slt i32 %191, 10
br i1 %192, label %193, label %222
193: ; preds = %190
store i32 0, i32* %18
br label %194
194: ; preds = %215, %193
%195 = load i32, i32* %18
%196 = icmp slt i32 %195, 10
br i1 %196, label %197, label %218
197: ; preds = %194
%198 = load i32, i32* %12
%199 = add nsw i32 %198, 1
store i32 %199, i32* %12
%200 = load i32, i32* %11
store i32 %200, i32* %10
%201 = load i32, i32* %10
%202 = load i32, i32* %11
%203 = add nsw i32 %201, %202
%204 = load i32, i32* %17
%205 = mul nsw i32 %204, 10
%206 = add nsw i32 2, %205
%207 = load i32, i32* %18
%208 = add nsw i32 %206, %207
%209 = sext i32 %208 to i64
%210 = getelementptr inbounds i32, i32* %22, i64 %209
store i32 %203, i32* %210
%211 = load i32, i32* %17
%212 = mul nsw i32 %211, 10
%213 = load i32, i32* %18
%214 = add nsw i32 %212, %213
store i32 %214, i32* %13
br label %215
215: ; preds = %197
%216 = load i32, i32* %18
%217 = add nsw i32 %216, 1
store i32 %217, i32* %18
br label %194
218: ; preds = %194
br label %219
219: ; preds = %218
%220 = load i32, i32* %17
%221 = add nsw i32 %220, 1
store i32 %221, i32* %17
br label %190
222: ; preds = %190
store i32 0, i32* %17
br label %223
223: ; preds = %239, %222
%224 = load i32, i32* %17
%225 = icmp slt i32 %224, 10
br i1 %225, label %226, label %242
226: ; preds = %223
%227 = load i32, i32* %12
%228 = add nsw i32 %227, 1
store i32 %228, i32* %12
%229 = load i32, i32* %11
store i32 %229, i32* %10
%230 = load i32, i32* %10
%231 = load i32, i32* %11
%232 = add nsw i32 %230, %231
%233 = load i32, i32* %17
%234 = add nsw i32 2, %233
%235 = sext i32 %234 to i64
%236 = getelementptr inbounds i32, i32* %22, i64 %235
store i32 %232, i32* %236
%237 = load i32, i32* %17
%238 = mul nsw i32 %237, 10
store i32 %238, i32* %13
br label %239
239: ; preds = %226
%240 = load i32, i32* %17
%241 = add nsw i32 %240, 1
store i32 %241, i32* %17
br label %223
242: ; preds = %223
%243 = load i32, i32* %12
%244 = add nsw i32 %243, 1
store i32 %244, i32* %12
%245 = load i32, i32* %11
store i32 %245, i32* %10
%246 = load i32, i32* %8
%247 = load i32, i32* %10
%248 = load i32, i32* %11
%249 = add nsw i32 %247, %248
%250 = call i32 @dosomething(i32* %22, i32 %246, i32 %249)
store i32 0, i32* %17
br label %251
251: ; preds = %271, %242
%252 = load i32, i32* %17
%253 = icmp slt i32 %252, 10
br i1 %253, label %254, label %274
254: ; preds = %251
store i32 0, i32* %18
br label %255
255: ; preds = %267, %254
%256 = load i32, i32* %18
%257 = icmp slt i32 %256, 10
br i1 %257, label %258, label %270
258: ; preds = %255
%259 = load i32, i32* %12
%260 = add nsw i32 %259, 1
store i32 %260, i32* %12
%261 = load i32, i32* %11
store i32 %261, i32* %10
%262 = load i32, i32* %8
%263 = load i32, i32* %10
%264 = load i32, i32* %11
%265 = add nsw i32 %263, %264
%266 = call i32 @dosomething(i32* %22, i32 %262, i32 %265)
br label %267
267: ; preds = %258
%268 = load i32, i32* %18
%269 = add nsw i32 %268, 1
store i32 %269, i32* %18
br label %255
270: ; preds = %255
br label %271
271: ; preds = %270
%272 = load i32, i32* %17
%273 = add nsw i32 %272, 1
store i32 %273, i32* %17
br label %251
274: ; preds = %251
store i32 0, i32* %17
br label %275
275: ; preds = %295, %274
%276 = load i32, i32* %17
%277 = icmp slt i32 %276, 10
br i1 %277, label %278, label %298
278: ; preds = %275
store i32 0, i32* %18
br label %279
279: ; preds = %291, %278
%280 = load i32, i32* %18
%281 = icmp slt i32 %280, 10
br i1 %281, label %282, label %294
282: ; preds = %279
%283 = load i32, i32* %12
%284 = add nsw i32 %283, 1
store i32 %284, i32* %12
%285 = load i32, i32* %11
store i32 %285, i32* %10
%286 = load i32, i32* %8
%287 = load i32, i32* %10
%288 = load i32, i32* %11
%289 = add nsw i32 %287, %288
%290 = call i32 @dosomething(i32* %22, i32 %286, i32 %289)
br label %291
291: ; preds = %282
%292 = load i32, i32* %18
%293 = add nsw i32 %292, 1
store i32 %293, i32* %18
br label %279
294: ; preds = %279
br label %295
295: ; preds = %294
%296 = load i32, i32* %17
%297 = add nsw i32 %296, 1
store i32 %297, i32* %17
br label %275
298: ; preds = %275
store i32 0, i32* %17
br label %299
299: ; preds = %324, %298
%300 = load i32, i32* %17
%301 = icmp slt i32 %300, 10
br i1 %301, label %302, label %327
302: ; preds = %299
store i32 0, i32* %18
br label %303
303: ; preds = %320, %302
%304 = load i32, i32* %18
%305 = icmp slt i32 %304, 10
br i1 %305, label %306, label %323
306: ; preds = %303
%307 = load i32, i32* %12
%308 = add nsw i32 %307, 1
store i32 %308, i32* %12
%309 = load i32, i32* %11
store i32 %309, i32* %10
%310 = load i32, i32* %8
%311 = load i32, i32* %10
%312 = load i32, i32* %11
%313 = add nsw i32 %311, %312
%314 = call i32 @dosomething(i32* %22, i32 %310, i32 %313)
%315 = load i32, i32* %11
store i32 %315, i32* %10
%316 = load i32, i32* %17
%317 = mul nsw i32 %316, 10
%318 = load i32, i32* %18
%319 = add nsw i32 %317, %318
store i32 %319, i32* %13
br label %320
320: ; preds = %306
%321 = load i32, i32* %18
%322 = add nsw i32 %321, 1
store i32 %322, i32* %18
br label %303
323: ; preds = %303
br label %324
324: ; preds = %323
%325 = load i32, i32* %17
%326 = add nsw i32 %325, 1
store i32 %326, i32* %17
br label %299
327: ; preds = %299
store i32 0, i32* %17
br label %328
328: ; preds = %351, %327
%329 = load i32, i32* %17
%330 = icmp slt i32 %329, 10
br i1 %330, label %331, label %354
331: ; preds = %328
store i32 0, i32* %18
br label %332
332: ; preds = %344, %331
%333 = load i32, i32* %18
%334 = icmp slt i32 %333, 10
br i1 %334, label %335, label %347
335: ; preds = %332
%336 = load i32, i32* %12
%337 = add nsw i32 %336, 1
store i32 %337, i32* %12
%338 = load i32, i32* %11
store i32 %338, i32* %10
%339 = load i32, i32* %8
%340 = load i32, i32* %10
%341 = load i32, i32* %11
%342 = add nsw i32 %340, %341
%343 = call i32 @dosomething(i32* %22, i32 %339, i32 %342)
br label %344
344: ; preds = %335
%345 = load i32, i32* %18
%346 = add nsw i32 %345, 1
store i32 %346, i32* %18
br label %332
347: ; preds = %332
%348 = load i32, i32* %11
store i32 %348, i32* %10
%349 = load i32, i32* %17
%350 = mul nsw i32 %349, 10
store i32 %350, i32* %13
br label %351
351: ; preds = %347
%352 = load i32, i32* %17
%353 = add nsw i32 %352, 1
store i32 %353, i32* %17
br label %328
354: ; preds = %328
store i32 0, i32* %17
br label %355
355: ; preds = %384, %354
%356 = load i32, i32* %17
%357 = icmp slt i32 %356, 10
br i1 %357, label %358, label %387
358: ; preds = %355
store i32 0, i32* %18
br label %359
359: ; preds = %380, %358
%360 = load i32, i32* %18
%361 = icmp slt i32 %360, 10
br i1 %361, label %362, label %383
362: ; preds = %359
%363 = load i32, i32* %12
%364 = add nsw i32 %363, 1
store i32 %364, i32* %12
%365 = load i32, i32* %11
store i32 %365, i32* %10
%366 = load i32, i32* %10
%367 = load i32, i32* %11
%368 = add nsw i32 %366, %367
%369 = load i32, i32* %17
%370 = mul nsw i32 %369, 10
%371 = add nsw i32 2, %370
%372 = load i32, i32* %18
%373 = add nsw i32 %371, %372
%374 = sext i32 %373 to i64
%375 = getelementptr inbounds i32, i32* %22, i64 %374
store i32 %368, i32* %375
%376 = load i32, i32* %17
%377 = mul nsw i32 %376, 10
%378 = load i32, i32* %18
%379 = add nsw i32 %377, %378
store i32 %379, i32* %13
br label %380
380: ; preds = %362
%381 = load i32, i32* %18
%382 = add nsw i32 %381, 1
store i32 %382, i32* %18
br label %359
383: ; preds = %359
br label %384
384: ; preds = %383
%385 = load i32, i32* %17
%386 = add nsw i32 %385, 1
store i32 %386, i32* %17
br label %355
387: ; preds = %355
store i32 0, i32* %17
br label %388
388: ; preds = %404, %387
%389 = load i32, i32* %17
%390 = icmp slt i32 %389, 10
br i1 %390, label %391, label %407
391: ; preds = %388
%392 = load i32, i32* %12
%393 = add nsw i32 %392, 1
store i32 %393, i32* %12
%394 = load i32, i32* %11
store i32 %394, i32* %10
%395 = load i32, i32* %10
%396 = load i32, i32* %11
%397 = add nsw i32 %395, %396
%398 = load i32, i32* %17
%399 = add nsw i32 2, %398
%400 = sext i32 %399 to i64
%401 = getelementptr inbounds i32, i32* %22, i64 %400
store i32 %397, i32* %401
%402 = load i32, i32* %17
%403 = mul nsw i32 %402, 10
store i32 %403, i32* %13
br label %404
404: ; preds = %391
%405 = load i32, i32* %17
%406 = add nsw i32 %405, 1
store i32 %406, i32* %17
br label %388
407: ; preds = %388
store i32 0, i32* %17
br label %408
408: ; preds = %437, %407
%409 = load i32, i32* %17
%410 = icmp slt i32 %409, 10
br i1 %410, label %411, label %440
411: ; preds = %408
store i32 0, i32* %18
br label %412
412: ; preds = %433, %411
%413 = load i32, i32* %18
%414 = icmp slt i32 %413, 10
br i1 %414, label %415, label %436
415: ; preds = %412
%416 = load i32, i32* %12
%417 = add nsw i32 %416, 1
store i32 %417, i32* %12
%418 = load i32, i32* %11
store i32 %418, i32* %10
%419 = load i32, i32* %10
%420 = load i32, i32* %11
%421 = add nsw i32 %419, %420
%422 = load i32, i32* %17
%423 = mul nsw i32 %422, 10
%424 = add nsw i32 2, %423
%425 = load i32, i32* %18
%426 = add nsw i32 %424, %425
%427 = sext i32 %426 to i64
%428 = getelementptr inbounds i32, i32* %22, i64 %427
store i32 %421, i32* %428
%429 = load i32, i32* %17
%430 = mul nsw i32 %429, 10
%431 = load i32, i32* %18
%432 = add nsw i32 %430, %431
store i32 %432, i32* %13
br label %433
433: ; preds = %415
%434 = load i32, i32* %18
%435 = add nsw i32 %434, 1
store i32 %435, i32* %18
br label %412
436: ; preds = %412
br label %437
437: ; preds = %436
%438 = load i32, i32* %17
%439 = add nsw i32 %438, 1
store i32 %439, i32* %17
br label %408
440: ; preds = %408
store i32 0, i32* %17
br label %441
441: ; preds = %457, %440
%442 = load i32, i32* %17
%443 = icmp slt i32 %442, 10
br i1 %443, label %444, label %460
444: ; preds = %441
%445 = load i32, i32* %12
%446 = add nsw i32 %445, 1
store i32 %446, i32* %12
%447 = load i32, i32* %11
store i32 %447, i32* %10
%448 = load i32, i32* %10
%449 = load i32, i32* %11
%450 = add nsw i32 %448, %449
%451 = load i32, i32* %17
%452 = add nsw i32 2, %451
%453 = sext i32 %452 to i64
%454 = getelementptr inbounds i32, i32* %22, i64 %453
store i32 %450, i32* %454
%455 = load i32, i32* %17
%456 = mul nsw i32 %455, 10
store i32 %456, i32* %13
br label %457
457: ; preds = %444
%458 = load i32, i32* %17
%459 = add nsw i32 %458, 1
store i32 %459, i32* %17
br label %441
460: ; preds = %441
store i32 0, i32* %17
br label %461
461: ; preds = %481, %460
%462 = load i32, i32* %17
%463 = icmp slt i32 %462, 10
br i1 %463, label %464, label %484
464: ; preds = %461
store i32 0, i32* %18
br label %465
465: ; preds = %477, %464
%466 = load i32, i32* %18
%467 = icmp slt i32 %466, 10
br i1 %467, label %468, label %480
468: ; preds = %465
%469 = load i32, i32* %12
%470 = add nsw i32 %469, 1
store i32 %470, i32* %12
%471 = load i32, i32* %11
store i32 %471, i32* %10
%472 = load i32, i32* %8
%473 = load i32, i32* %10
%474 = load i32, i32* %11
%475 = add nsw i32 %473, %474
%476 = call i32 @dosomething(i32* %22, i32 %472, i32 %475)
br label %477
477: ; preds = %468
%478 = load i32, i32* %18
%479 = add nsw i32 %478, 1
store i32 %479, i32* %18
br label %465
480: ; preds = %465
br label %481
481: ; preds = %480
%482 = load i32, i32* %17
%483 = add nsw i32 %482, 1
store i32 %483, i32* %17
br label %461
484: ; preds = %461
store i32 0, i32* %17
br label %485
485: ; preds = %505, %484
%486 = load i32, i32* %17
%487 = icmp slt i32 %486, 10
br i1 %487, label %488, label %508
488: ; preds = %485
store i32 0, i32* %18
br label %489
489: ; preds = %501, %488
%490 = load i32, i32* %18
%491 = icmp slt i32 %490, 10
br i1 %491, label %492, label %504
492: ; preds = %489
%493 = load i32, i32* %12
%494 = add nsw i32 %493, 1
store i32 %494, i32* %12
%495 = load i32, i32* %11
store i32 %495, i32* %10
%496 = load i32, i32* %8
%497 = load i32, i32* %10
%498 = load i32, i32* %11
%499 = add nsw i32 %497, %498
%500 = call i32 @dosomething(i32* %22, i32 %496, i32 %499)
br label %501
501: ; preds = %492
%502 = load i32, i32* %18
%503 = add nsw i32 %502, 1
store i32 %503, i32* %18
br label %489
504: ; preds = %489
br label %505
505: ; preds = %504
%506 = load i32, i32* %17
%507 = add nsw i32 %506, 1
store i32 %507, i32* %17
br label %485
508: ; preds = %485
store i32 0, i32* %17
br label %509
509: ; preds = %534, %508
%510 = load i32, i32* %17
%511 = icmp slt i32 %510, 10
br i1 %511, label %512, label %537
512: ; preds = %509
store i32 0, i32* %18
br label %513
513: ; preds = %530, %512
%514 = load i32, i32* %18
%515 = icmp slt i32 %514, 10
br i1 %515, label %516, label %533
516: ; preds = %513
%517 = load i32, i32* %12
%518 = add nsw i32 %517, 1
store i32 %518, i32* %12
%519 = load i32, i32* %11
store i32 %519, i32* %10
%520 = load i32, i32* %8
%521 = load i32, i32* %10
%522 = load i32, i32* %11
%523 = add nsw i32 %521, %522
%524 = call i32 @dosomething(i32* %22, i32 %520, i32 %523)
%525 = load i32, i32* %11
store i32 %525, i32* %10
%526 = load i32, i32* %17
%527 = mul nsw i32 %526, 10
%528 = load i32, i32* %18
%529 = add nsw i32 %527, %528
store i32 %529, i32* %13
br label %530
530: ; preds = %516
%531 = load i32, i32* %18
%532 = add nsw i32 %531, 1
store i32 %532, i32* %18
br label %513
533: ; preds = %513
br label %534
534: ; preds = %533
%535 = load i32, i32* %17
%536 = add nsw i32 %535, 1
store i32 %536, i32* %17
br label %509
537: ; preds = %509
store i32 0, i32* %17
br label %538
538: ; preds = %561, %537
%539 = load i32, i32* %17
%540 = icmp slt i32 %539, 10
br i1 %540, label %541, label %564
541: ; preds = %538
store i32 0, i32* %18
br label %542
542: ; preds = %554, %541
%543 = load i32, i32* %18
%544 = icmp slt i32 %543, 10
br i1 %544, label %545, label %557
545: ; preds = %542
%546 = load i32, i32* %12
%547 = add nsw i32 %546, 1
store i32 %547, i32* %12
%548 = load i32, i32* %11
store i32 %548, i32* %10
%549 = load i32, i32* %8
%550 = load i32, i32* %10
%551 = load i32, i32* %11
%552 = add nsw i32 %550, %551
%553 = call i32 @dosomething(i32* %22, i32 %549, i32 %552)
br label %554
554: ; preds = %545
%555 = load i32, i32* %18
%556 = add nsw i32 %555, 1
store i32 %556, i32* %18
br label %542
557: ; preds = %542
%558 = load i32, i32* %11
store i32 %558, i32* %10
%559 = load i32, i32* %17
%560 = mul nsw i32 %559, 10
store i32 %560, i32* %13
br label %561
561: ; preds = %557
%562 = load i32, i32* %17
%563 = add nsw i32 %562, 1
store i32 %563, i32* %17
br label %538
564: ; preds = %538
store i32 0, i32* %17
br label %565
565: ; preds = %594, %564
%566 = load i32, i32* %17
%567 = icmp slt i32 %566, 10
br i1 %567, label %568, label %597
568: ; preds = %565
store i32 0, i32* %18
br label %569
569: ; preds = %590, %568
%570 = load i32, i32* %18
%571 = icmp slt i32 %570, 10
br i1 %571, label %572, label %593
572: ; preds = %569
%573 = load i32, i32* %12
%574 = add nsw i32 %573, 1
store i32 %574, i32* %12
%575 = load i32, i32* %11
store i32 %575, i32* %10
%576 = load i32, i32* %10
%577 = load i32, i32* %11
%578 = add nsw i32 %576, %577
%579 = load i32, i32* %17
%580 = mul nsw i32 %579, 10
%581 = add nsw i32 2, %580
%582 = load i32, i32* %18
%583 = add nsw i32 %581, %582
%584 = sext i32 %583 to i64
%585 = getelementptr inbounds i32, i32* %22, i64 %584
store i32 %578, i32* %585
%586 = load i32, i32* %17
%587 = mul nsw i32 %586, 10
%588 = load i32, i32* %18
%589 = add nsw i32 %587, %588
store i32 %589, i32* %13
br label %590
590: ; preds = %572
%591 = load i32, i32* %18
%592 = add nsw i32 %591, 1
store i32 %592, i32* %18
br label %569
593: ; preds = %569
br label %594
594: ; preds = %593
%595 = load i32, i32* %17
%596 = add nsw i32 %595, 1
store i32 %596, i32* %17
br label %565
597: ; preds = %565
store i32 0, i32* %17
br label %598
598: ; preds = %614, %597
%599 = load i32, i32* %17
%600 = icmp slt i32 %599, 10
br i1 %600, label %601, label %617
601: ; preds = %598
%602 = load i32, i32* %12
%603 = add nsw i32 %602, 1
store i32 %603, i32* %12
%604 = load i32, i32* %11
store i32 %604, i32* %10
%605 = load i32, i32* %10
%606 = load i32, i32* %11
%607 = add nsw i32 %605, %606
%608 = load i32, i32* %17
%609 = add nsw i32 2, %608
%610 = sext i32 %609 to i64
%611 = getelementptr inbounds i32, i32* %22, i64 %610
store i32 %607, i32* %611
%612 = load i32, i32* %17
%613 = mul nsw i32 %612, 10
store i32 %613, i32* %13
br label %614
614: ; preds = %601
%615 = load i32, i32* %17
%616 = add nsw i32 %615, 1
store i32 %616, i32* %17
br label %598
617: ; preds = %598
store i32 0, i32* %17
br label %618
618: ; preds = %647, %617
%619 = load i32, i32* %17
%620 = icmp slt i32 %619, 10
br i1 %620, label %621, label %650
621: ; preds = %618
store i32 0, i32* %18
br label %622
622: ; preds = %643, %621
%623 = load i32, i32* %18
%624 = icmp slt i32 %623, 10
br i1 %624, label %625, label %646
625: ; preds = %622
%626 = load i32, i32* %12
%627 = add nsw i32 %626, 1
store i32 %627, i32* %12
%628 = load i32, i32* %11
store i32 %628, i32* %10
%629 = load i32, i32* %10
%630 = load i32, i32* %11
%631 = add nsw i32 %629, %630
%632 = load i32, i32* %17
%633 = mul nsw i32 %632, 10
%634 = add nsw i32 2, %633
%635 = load i32, i32* %18
%636 = add nsw i32 %634, %635
%637 = sext i32 %636 to i64
%638 = getelementptr inbounds i32, i32* %22, i64 %637
store i32 %631, i32* %638
%639 = load i32, i32* %17
%640 = mul nsw i32 %639, 10
%641 = load i32, i32* %18
%642 = add nsw i32 %640, %641
store i32 %642, i32* %13
br label %643
643: ; preds = %625
%644 = load i32, i32* %18
%645 = add nsw i32 %644, 1
store i32 %645, i32* %18
br label %622
646: ; preds = %622
br label %647
647: ; preds = %646
%648 = load i32, i32* %17
%649 = add nsw i32 %648, 1
store i32 %649, i32* %17
br label %618
650: ; preds = %618
store i32 0, i32* %17
br label %651
651: ; preds = %667, %650
%652 = load i32, i32* %17
%653 = icmp slt i32 %652, 10
br i1 %653, label %654, label %670
654: ; preds = %651
%655 = load i32, i32* %12
%656 = add nsw i32 %655, 1
store i32 %656, i32* %12
%657 = load i32, i32* %11
store i32 %657, i32* %10
%658 = load i32, i32* %10
%659 = load i32, i32* %11
%660 = add nsw i32 %658, %659
%661 = load i32, i32* %17
%662 = add nsw i32 2, %661
%663 = sext i32 %662 to i64
%664 = getelementptr inbounds i32, i32* %22, i64 %663
store i32 %660, i32* %664
%665 = load i32, i32* %17
%666 = mul nsw i32 %665, 10
store i32 %666, i32* %13
br label %667
667: ; preds = %654
%668 = load i32, i32* %17
%669 = add nsw i32 %668, 1
store i32 %669, i32* %17
br label %651
670: ; preds = %651
%671 = load i8*, i8** %15
ret void
}

LLVM IR (-O2):
define void @test(i32 %0, i32 %1, i32 %2, i32 %3, i32 %4, i32 %5, i32* nocapture readnone %6) {
%8 = zext i32 %1 to i64
%9 = alloca i32, i64 %8
%10 = call i32 @dosomething(i32* %9, i32 %0, i32 0)
%11 = shl nsw i32 %3, 1
%12 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
br label %13
13: ; preds = %7, %13
%14 = phi i32 [ 0, %7 ], [ %25, %13 ]
%15 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%16 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%17 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%18 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%19 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%20 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%21 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%22 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%23 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%24 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%25 = add nuw nsw i32 %14, 1
%26 = icmp eq i32 %25, 10
br i1 %26, label %27, label %13
27: ; preds = %13, %27
%28 = phi i32 [ %39, %27 ], [ 0, %13 ]
%29 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%30 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%31 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%32 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%33 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%34 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%35 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%36 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%37 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%38 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%39 = add nuw nsw i32 %28, 1
%40 = icmp eq i32 %39, 10
br i1 %40, label %41, label %27
41: ; preds = %27, %41
%42 = phi i32 [ %53, %41 ], [ 0, %27 ]
%43 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%44 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%45 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%46 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%47 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%48 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%49 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%50 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%51 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%52 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%53 = add nuw nsw i32 %42, 1
%54 = icmp eq i32 %53, 10
br i1 %54, label %55, label %41
55: ; preds = %41, %55
%56 = phi i32 [ %67, %55 ], [ 0, %41 ]
%57 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%58 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%59 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%60 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%61 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%62 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%63 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%64 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%65 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%66 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%67 = add nuw nsw i32 %56, 1
%68 = icmp eq i32 %67, 10
br i1 %68, label %69, label %55
69: ; preds = %55
%70 = getelementptr inbounds i32, i32* %9, i64 2
%71 = insertelement <4 x i32> poison, i32 %11, i64 0
%72 = shufflevector <4 x i32> %71, <4 x i32> poison, <4 x i32> zeroinitializer
%73 = bitcast i32* %70 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %73
%74 = getelementptr inbounds i32, i32* %9, i64 6
%75 = bitcast i32* %74 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %75
%76 = getelementptr inbounds i32, i32* %9, i64 10
%77 = getelementptr inbounds i32, i32* %9, i64 11
%78 = bitcast i32* %76 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %78
%79 = getelementptr inbounds i32, i32* %9, i64 14
%80 = bitcast i32* %79 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %80
%81 = getelementptr inbounds i32, i32* %9, i64 18
%82 = bitcast i32* %81 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %82
%83 = getelementptr inbounds i32, i32* %9, i64 22
%84 = bitcast i32* %83 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %84
%85 = getelementptr inbounds i32, i32* %9, i64 26
%86 = bitcast i32* %85 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %86
%87 = getelementptr inbounds i32, i32* %9, i64 30
%88 = bitcast i32* %87 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %88
%89 = getelementptr inbounds i32, i32* %9, i64 34
%90 = bitcast i32* %89 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %90
%91 = getelementptr inbounds i32, i32* %9, i64 38
%92 = bitcast i32* %91 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %92
%93 = getelementptr inbounds i32, i32* %9, i64 42
%94 = bitcast i32* %93 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %94
%95 = getelementptr inbounds i32, i32* %9, i64 46
%96 = bitcast i32* %95 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %96
%97 = getelementptr inbounds i32, i32* %9, i64 50
%98 = bitcast i32* %97 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %98
%99 = getelementptr inbounds i32, i32* %9, i64 54
%100 = bitcast i32* %99 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %100
%101 = getelementptr inbounds i32, i32* %9, i64 58
%102 = bitcast i32* %101 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %102
%103 = getelementptr inbounds i32, i32* %9, i64 62
%104 = bitcast i32* %103 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %104
%105 = getelementptr inbounds i32, i32* %9, i64 66
%106 = bitcast i32* %105 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %106
%107 = getelementptr inbounds i32, i32* %9, i64 70
%108 = bitcast i32* %107 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %108
%109 = getelementptr inbounds i32, i32* %9, i64 74
%110 = bitcast i32* %109 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %110
%111 = getelementptr inbounds i32, i32* %9, i64 78
%112 = bitcast i32* %111 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %112
%113 = getelementptr inbounds i32, i32* %9, i64 82
%114 = bitcast i32* %113 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %114
%115 = getelementptr inbounds i32, i32* %9, i64 86
%116 = bitcast i32* %115 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %116
%117 = getelementptr inbounds i32, i32* %9, i64 90
%118 = bitcast i32* %117 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %118
%119 = getelementptr inbounds i32, i32* %9, i64 94
%120 = bitcast i32* %119 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %120
%121 = getelementptr inbounds i32, i32* %9, i64 98
%122 = bitcast i32* %121 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %122
%123 = bitcast i32* %70 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %123
%124 = bitcast i32* %74 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %124
%125 = bitcast i32* %76 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %125
%126 = bitcast i32* %79 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %126
%127 = bitcast i32* %81 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %127
%128 = bitcast i32* %83 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %128
%129 = bitcast i32* %85 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %129
%130 = bitcast i32* %87 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %130
%131 = bitcast i32* %89 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %131
%132 = bitcast i32* %91 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %132
%133 = bitcast i32* %93 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %133
%134 = bitcast i32* %95 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %134
%135 = bitcast i32* %97 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %135
%136 = bitcast i32* %99 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %136
%137 = bitcast i32* %101 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %137
%138 = bitcast i32* %103 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %138
%139 = bitcast i32* %105 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %139
%140 = bitcast i32* %107 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %140
%141 = bitcast i32* %109 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %141
%142 = bitcast i32* %111 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %142
%143 = bitcast i32* %113 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %143
%144 = bitcast i32* %115 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %144
%145 = bitcast i32* %117 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %145
%146 = bitcast i32* %119 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %146
%147 = bitcast i32* %121 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %147
%148 = bitcast i32* %70 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %148
%149 = bitcast i32* %74 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %149
store i32 %11, i32* %76
store i32 %11, i32* %77
%150 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
br label %151
151: ; preds = %69, %151
%152 = phi i32 [ 0, %69 ], [ %163, %151 ]
%153 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%154 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%155 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%156 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%157 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%158 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%159 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%160 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%161 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%162 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%163 = add nuw nsw i32 %152, 1
%164 = icmp eq i32 %163, 10
br i1 %164, label %165, label %151
165: ; preds = %151, %165
%166 = phi i32 [ %177, %165 ], [ 0, %151 ]
%167 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%168 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%169 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%170 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%171 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%172 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%173 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%174 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%175 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%176 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%177 = add nuw nsw i32 %166, 1
%178 = icmp eq i32 %177, 10
br i1 %178, label %179, label %165
179: ; preds = %165, %179
%180 = phi i32 [ %191, %179 ], [ 0, %165 ]
%181 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%182 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%183 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%184 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%185 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%186 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%187 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%188 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%189 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%190 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%191 = add nuw nsw i32 %180, 1
%192 = icmp eq i32 %191, 10
br i1 %192, label %193, label %179
193: ; preds = %179, %193
%194 = phi i32 [ %205, %193 ], [ 0, %179 ]
%195 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%196 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%197 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%198 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%199 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%200 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%201 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%202 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%203 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%204 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%205 = add nuw nsw i32 %194, 1
%206 = icmp eq i32 %205, 10
br i1 %206, label %207, label %193
207: ; preds = %193
%208 = bitcast i32* %70 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %208
%209 = bitcast i32* %74 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %209
%210 = bitcast i32* %76 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %210
%211 = bitcast i32* %79 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %211
%212 = bitcast i32* %81 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %212
%213 = bitcast i32* %83 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %213
%214 = bitcast i32* %85 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %214
%215 = bitcast i32* %87 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %215
%216 = bitcast i32* %89 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %216
%217 = bitcast i32* %91 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %217
%218 = bitcast i32* %93 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %218
%219 = bitcast i32* %95 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %219
%220 = bitcast i32* %97 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %220
%221 = bitcast i32* %99 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %221
%222 = bitcast i32* %101 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %222
%223 = bitcast i32* %103 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %223
%224 = bitcast i32* %105 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %224
%225 = bitcast i32* %107 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %225
%226 = bitcast i32* %109 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %226
%227 = bitcast i32* %111 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %227
%228 = bitcast i32* %113 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %228
%229 = bitcast i32* %115 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %229
%230 = bitcast i32* %117 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %230
%231 = bitcast i32* %119 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %231
%232 = bitcast i32* %121 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %232
%233 = bitcast i32* %70 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %233
%234 = bitcast i32* %74 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %234
%235 = bitcast i32* %76 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %235
%236 = bitcast i32* %79 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %236
%237 = bitcast i32* %81 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %237
%238 = bitcast i32* %83 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %238
%239 = bitcast i32* %85 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %239
%240 = bitcast i32* %87 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %240
%241 = bitcast i32* %89 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %241
%242 = bitcast i32* %91 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %242
%243 = bitcast i32* %93 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %243
%244 = bitcast i32* %95 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %244
%245 = bitcast i32* %97 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %245
%246 = bitcast i32* %99 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %246
%247 = bitcast i32* %101 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %247
%248 = bitcast i32* %103 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %248
%249 = bitcast i32* %105 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %249
%250 = bitcast i32* %107 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %250
%251 = bitcast i32* %109 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %251
%252 = bitcast i32* %111 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %252
%253 = bitcast i32* %113 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %253
%254 = bitcast i32* %115 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %254
%255 = bitcast i32* %117 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %255
%256 = bitcast i32* %119 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %256
%257 = bitcast i32* %121 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %257
%258 = bitcast i32* %70 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %258
%259 = bitcast i32* %74 to <4 x i32>*
store <4 x i32> %72, <4 x i32>* %259
store i32 %11, i32* %76
store i32 %11, i32* %77
br label %260
260: ; preds = %207, %260
%261 = phi i32 [ %272, %260 ], [ 0, %207 ]
%262 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%263 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%264 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%265 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%266 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%267 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%268 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%269 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%270 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%271 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%272 = add nuw nsw i32 %261, 1
%273 = icmp eq i32 %272, 10
br i1 %273, label %274, label %260
274: ; preds = %260, %274
%275 = phi i32 [ %286, %274 ], [ 0, %260 ]
%276 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%277 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%278 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%279 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%280 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%281 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%282 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%283 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%284 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%285 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%286 = add nuw nsw i32 %275, 1
%287 = icmp eq i32 %286, 10
br i1 %287, label %288, label %274
288: ; preds = %274, %288
%289 = phi i32 [ %300, %288 ], [ 0, %274 ]
%290 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%291 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%292 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%293 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%294 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%295 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%296 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%297 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%298 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%299 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%300 = add nuw nsw i32 %289, 1
%301 = icmp eq i32 %300, 10
br i1 %301, label %302, label %288
302: ; preds = %288, %302
%303 = phi i32 [ %314, %302 ], [ 0, %288 ]
%304 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%305 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%306 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%307 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%308 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%309 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%310 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%311 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%312 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%313 = call i32 @dosomething(i32* %9, i32 %0, i32 %11)
%314 = add nuw nsw i32 %303, 1
%315 = icmp eq i32 %314, 10
br i1 %315, label %316, label %302
316: ; preds = %302
ret void
}