#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*/ abort();
void bar(int n, int v) {
  int a[n], b[n], c[n], d[n], e[n], err, i;
  int(*x)[n] = &c;
  for (i = 0; i < n; i++) {
    (*x)[i] = 4 * i;
    a[i] = 7 * i;
    b[i] = 8 * i;
  }
#pragma omp target map(to : x[0] [5:10], a [0:10], b [5:10]) map(from : err)
  {
    err = 0;
    for (i = 0; i < 10; i++)
      if ((*x)[5 + i] != 20 + 4 * i || a[i] != 7 * i || b[5 + i] != 40 + 8 * i)
        err = 1;
  }
  if (err)
    abort();
  for (i = 0; i < n; i++) {
    (*x)[i] = 9 * i;
    a[i] = 12 * i;
    b[i] = 13 * i;
  }
#pragma omp target map(to                                                      \
                       : x[0] [v:v + 5], a [v - 5:v + 5], b [v:v + 5])         \
    map(from                                                                   \
        : err)
  {
    err = 0;
    for (i = 0; i < 10; i++)
      if ((*x)[5 + i] != 45 + 9 * i || a[i] != 12 * i ||
          b[5 + i] != 65 + 13 * i)
        err = 1;
  }
  if (err)
    abort();
}


x86 assembly (clang, -O0):
<bar>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    -0x4(%rbp),%eax
mov    %rsp,%rcx
mov    %rcx,-0x10(%rbp)
lea    0xf(,%rax,4),%rdx
and    $0xfffffffffffffff0,%rdx
mov    %rsp,%rcx
sub    %rdx,%rcx
mov    %rcx,-0x58(%rbp)
mov    %rcx,%rsp
mov    %rax,-0x18(%rbp)
mov    -0x4(%rbp),%eax
lea    0xf(,%rax,4),%rdx
and    $0xfffffffffffffff0,%rdx
mov    %rsp,%rcx
sub    %rdx,%rcx
mov    %rcx,-0x50(%rbp)
mov    %rcx,%rsp
mov    %rax,-0x20(%rbp)
mov    -0x4(%rbp),%eax
mov    %eax,%ecx
lea    0xf(,%rcx,4),%rdx
and    $0xfffffffffffffff0,%rdx
mov    %rsp,%rax
sub    %rdx,%rax
mov    %rax,%rsp
mov    %rcx,-0x28(%rbp)
mov    -0x4(%rbp),%ecx
mov    %rcx,-0x30(%rbp)
mov    -0x4(%rbp),%ecx
mov    %rcx,-0x38(%rbp)
mov    %rax,-0x48(%rbp)
movl   $0x0,-0x40(%rbp)
mov    -0x40(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    11e7 <bar+0xd7>
mov    -0x50(%rbp),%rax
mov    -0x58(%rbp),%rcx
mov    -0x40(%rbp),%edi
shl    $0x2,%edi
mov    -0x48(%rbp),%rdx
movslq -0x40(%rbp),%rsi
mov    %edi,(%rdx,%rsi,4)
imul   $0x7,-0x40(%rbp),%esi
movslq -0x40(%rbp),%rdx
mov    %esi,(%rcx,%rdx,4)
mov    -0x40(%rbp),%edx
shl    $0x3,%edx
movslq -0x40(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
jmp    119c <bar+0x8c>
movl   $0x0,-0x3c(%rbp)
movl   $0x0,-0x40(%rbp)
cmpl   $0xa,-0x40(%rbp)
jge    1272 <bar+0x162>
mov    -0x48(%rbp),%rax
mov    -0x40(%rbp),%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
mov    -0x40(%rbp),%ecx
shl    $0x2,%ecx
add    $0x14,%ecx
cmp    %ecx,%eax
jne    1258 <bar+0x148>
mov    -0x58(%rbp),%rax
movslq -0x40(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
imul   $0x7,-0x40(%rbp),%ecx
cmp    %ecx,%eax
jne    1258 <bar+0x148>
mov    -0x50(%rbp),%rax
mov    -0x40(%rbp),%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
mov    -0x40(%rbp),%ecx
shl    $0x3,%ecx
add    $0x28,%ecx
cmp    %ecx,%eax
je     125f <bar+0x14f>
movl   $0x1,-0x3c(%rbp)
jmp    1264 <bar+0x154>
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
jmp    11f5 <bar+0xe5>
cmpl   $0x0,-0x3c(%rbp)
je     1283 <bar+0x173>
mov    $0x0,%al
call   1030 <abort@plt>
movl   $0x0,-0x40(%rbp)
mov    -0x40(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    12d1 <bar+0x1c1>
mov    -0x50(%rbp),%rax
mov    -0x58(%rbp),%rcx
imul   $0x9,-0x40(%rbp),%edi
mov    -0x48(%rbp),%rdx
movslq -0x40(%rbp),%rsi
mov    %edi,(%rdx,%rsi,4)
imul   $0xc,-0x40(%rbp),%esi
movslq -0x40(%rbp),%rdx
mov    %esi,(%rcx,%rdx,4)
imul   $0xd,-0x40(%rbp),%edx
movslq -0x40(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
jmp    128a <bar+0x17a>
movl   $0x0,-0x3c(%rbp)
movl   $0x0,-0x40(%rbp)
cmpl   $0xa,-0x40(%rbp)
jge    1358 <bar+0x248>
mov    -0x48(%rbp),%rax
mov    -0x40(%rbp),%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
imul   $0x9,-0x40(%rbp),%ecx
add    $0x2d,%ecx
cmp    %ecx,%eax
jne    133e <bar+0x22e>
mov    -0x58(%rbp),%rax
movslq -0x40(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
imul   $0xc,-0x40(%rbp),%ecx
cmp    %ecx,%eax
jne    133e <bar+0x22e>
mov    -0x50(%rbp),%rax
mov    -0x40(%rbp),%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
imul   $0xd,-0x40(%rbp),%ecx
add    $0x41,%ecx
cmp    %ecx,%eax
je     1345 <bar+0x235>
movl   $0x1,-0x3c(%rbp)
jmp    134a <bar+0x23a>
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
jmp    12df <bar+0x1cf>
cmpl   $0x0,-0x3c(%rbp)
je     1369 <bar+0x259>
mov    $0x0,%al
call   1030 <abort@plt>
mov    -0x10(%rbp),%rax
mov    %rax,%rsp
mov    %rbp,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<bar>:
push   %rbp
mov    %rsp,%rbp
push   %r15
push   %r14
push   %rbx
push   %rax
mov    %edi,%r11d
mov    %rsp,%r15
lea    0xf(,%r11,4),%rax
and    $0xfffffffffffffff0,%rax
sub    %rax,%r15
mov    %r15,%rsp
mov    %rsp,%r14
sub    %rax,%r14
mov    %r14,%rsp
mov    %rsp,%rdx
sub    %rax,%rdx
mov    %rdx,%rsp
test   %edi,%edi
jle    1154 <bar+0x44>
cmp    $0x8,%edi
jae    115d <bar+0x4d>
xor    %esi,%esi
jmp    11f7 <bar+0xe7>
lea    0x14(%rdx),%r8
jmp    123b <bar+0x12b>
mov    %r11d,%esi
and    $0xfffffff8,%esi
lea    0x0(,%r11,4),%rcx
and    $0xffffffffffffffe0,%rcx
movdqa 0xe89(%rip),%xmm0
xor    %ebx,%ebx
movdqa 0xe8f(%rip),%xmm1
movdqa 0xe97(%rip),%xmm2
nopl   0x0(%rax)
movdqa %xmm0,%xmm3
paddd  %xmm1,%xmm3
movdqa %xmm0,%xmm4
pslld  $0x2,%xmm4
movdqa %xmm0,%xmm5
pslld  $0x3,%xmm5
movdqa %xmm3,%xmm6
pslld  $0x3,%xmm6
movdqa %xmm5,(%r14,%rbx,1)
movdqa %xmm6,0x10(%r14,%rbx,1)
psubd  %xmm3,%xmm6
pslld  $0x2,%xmm3
movdqa %xmm4,(%rdx,%rbx,1)
movdqa %xmm3,0x10(%rdx,%rbx,1)
psubd  %xmm0,%xmm5
movdqa %xmm5,(%r15,%rbx,1)
movdqa %xmm6,0x10(%r15,%rbx,1)
paddd  %xmm2,%xmm0
add    $0x20,%rbx
cmp    %rbx,%rcx
jne    1190 <bar+0x80>
cmp    %r11,%rsi
je     122d <bar+0x11d>
lea    0x0(,%rsi,8),%ebx
mov    %ebx,%ecx
sub    %esi,%ecx
lea    0x0(,%rsi,4),%eax
nopl   0x0(%rax)
mov    %eax,(%rdx,%rsi,4)
mov    %ecx,(%r15,%rsi,4)
mov    %ebx,(%r14,%rsi,4)
add    $0x1,%rsi
add    $0x8,%ebx
add    $0x7,%ecx
add    $0x4,%eax
cmp    %rsi,%r11
jne    1210 <bar+0x100>
lea    0x14(%rdx),%r8
mov    0x14(%rdx),%r9d
cmp    $0x14,%r9d
jne    1257 <bar+0x147>
mov    $0x14,%r9d
cmpl   $0x0,(%r15)
jne    1257 <bar+0x147>
xor    %r10d,%r10d
mov    $0x14,%r9d
cmpl   $0x28,0x14(%r14)
je     125d <bar+0x14d>
mov    $0x1,%r10d
cmpl   $0x18,0x18(%rdx)
jne    1271 <bar+0x161>
cmpl   $0x7,0x4(%r15)
jne    1271 <bar+0x161>
cmpl   $0x30,0x18(%r14)
je     1277 <bar+0x167>
mov    $0x1,%r10d
cmpl   $0x1c,0x1c(%rdx)
jne    128b <bar+0x17b>
cmpl   $0xe,0x8(%r15)
jne    128b <bar+0x17b>
cmpl   $0x38,0x1c(%r14)
je     1291 <bar+0x181>
mov    $0x1,%r10d
cmpl   $0x20,0x20(%rdx)
jne    12a5 <bar+0x195>
cmpl   $0x15,0xc(%r15)
jne    12a5 <bar+0x195>
cmpl   $0x40,0x20(%r14)
je     12ab <bar+0x19b>
mov    $0x1,%r10d
cmpl   $0x24,0x24(%rdx)
jne    12bf <bar+0x1af>
cmpl   $0x1c,0x10(%r15)
jne    12bf <bar+0x1af>
cmpl   $0x48,0x24(%r14)
je     12c5 <bar+0x1b5>
mov    $0x1,%r10d
cmpl   $0x28,0x28(%rdx)
jne    12d9 <bar+0x1c9>
cmpl   $0x23,0x14(%r15)
jne    12d9 <bar+0x1c9>
cmpl   $0x50,0x28(%r14)
je     12df <bar+0x1cf>
mov    $0x1,%r10d
cmpl   $0x2c,0x2c(%rdx)
jne    12f3 <bar+0x1e3>
cmpl   $0x2a,0x18(%r15)
jne    12f3 <bar+0x1e3>
cmpl   $0x58,0x2c(%r14)
je     12f9 <bar+0x1e9>
mov    $0x1,%r10d
cmpl   $0x30,0x30(%rdx)
jne    130d <bar+0x1fd>
cmpl   $0x31,0x1c(%r15)
jne    130d <bar+0x1fd>
cmpl   $0x60,0x30(%r14)
je     1313 <bar+0x203>
mov    $0x1,%r10d
cmpl   $0x34,0x34(%rdx)
jne    1327 <bar+0x217>
cmpl   $0x38,0x20(%r15)
jne    1327 <bar+0x217>
cmpl   $0x68,0x34(%r14)
je     132d <bar+0x21d>
mov    $0x1,%r10d
cmpl   $0x38,0x38(%rdx)
jne    164d <bar+0x53d>
cmpl   $0x3f,0x24(%r15)
jne    164d <bar+0x53d>
cmpl   $0x70,0x38(%r14)
jne    164d <bar+0x53d>
test   %r10d,%r10d
jne    164d <bar+0x53d>
test   %edi,%edi
jle    1520 <bar+0x410>
cmp    $0x4,%edi
jae    136a <bar+0x25a>
xor    %edi,%edi
jmp    14df <bar+0x3cf>
mov    %r11d,%edi
and    $0xfffffffc,%edi
lea    -0x4(%rdi),%rax
mov    %rax,%r9
shr    $0x2,%r9
add    $0x1,%r9
test   %rax,%rax
je     1634 <bar+0x524>
mov    %r9,%rcx
and    $0xfffffffffffffffe,%rcx
movdqa 0xc69(%rip),%xmm5
xor    %esi,%esi
movdqa 0xc8f(%rip),%xmm1
movdqa 0xc97(%rip),%xmm2
movdqa 0xc5e(%rip),%xmm8
movdqa 0xc95(%rip),%xmm9
movdqa 0xc9c(%rip),%xmm10
movdqa 0xc54(%rip),%xmm6
nopl   0x0(%rax)
movdqa %xmm5,%xmm7
pslld  $0x3,%xmm7
paddd  %xmm5,%xmm7
movdqa %xmm7,(%rdx,%rsi,4)
movdqa %xmm5,%xmm7
pmuludq %xmm1,%xmm7
pshufd $0xe8,%xmm7,%xmm7
pshufd $0xf5,%xmm5,%xmm4
movdqa %xmm4,%xmm3
pmuludq %xmm1,%xmm3
pshufd $0xe8,%xmm3,%xmm3
punpckldq %xmm3,%xmm7
movdqa %xmm7,(%r15,%rsi,4)
movdqa %xmm5,%xmm3
pmuludq %xmm2,%xmm3
pshufd $0xe8,%xmm3,%xmm3
pmuludq %xmm2,%xmm4
pshufd $0xe8,%xmm4,%xmm4
punpckldq %xmm4,%xmm3
movdqa %xmm3,(%r14,%rsi,4)
movdqa %xmm5,%xmm0
paddd  %xmm8,%xmm0
movdqa %xmm0,%xmm4
pslld  $0x3,%xmm4
paddd  %xmm0,%xmm4
movdqa %xmm4,0x10(%rdx,%rsi,4)
paddd  %xmm9,%xmm7
movdqa %xmm7,0x10(%r15,%rsi,4)
paddd  %xmm10,%xmm3
movdqa %xmm3,0x10(%r14,%rsi,4)
add    $0x8,%rsi
paddd  %xmm6,%xmm5
add    $0xfffffffffffffffe,%rcx
jne    13d0 <bar+0x2c0>
test   $0x1,%r9b
je     14da <bar+0x3ca>
movdqa %xmm5,%xmm0
pslld  $0x3,%xmm0
paddd  %xmm5,%xmm0
movdqa %xmm0,(%rdx,%rsi,4)
movdqa 0xb9f(%rip),%xmm0
movdqa %xmm5,%xmm1
pmuludq %xmm0,%xmm1
pshufd $0xe8,%xmm1,%xmm1
pshufd $0xf5,%xmm5,%xmm2
pmuludq %xmm2,%xmm0
pshufd $0xe8,%xmm0,%xmm0
punpckldq %xmm0,%xmm1
movdqa %xmm1,(%r15,%rsi,4)
movdqa 0xb82(%rip),%xmm0
pmuludq %xmm0,%xmm5
pshufd $0xe8,%xmm5,%xmm1
pmuludq %xmm0,%xmm2
pshufd $0xe8,%xmm2,%xmm0
punpckldq %xmm0,%xmm1
movdqa %xmm1,(%r14,%rsi,4)
cmp    %r11,%rdi
je     151d <bar+0x40d>
lea    (%rdi,%rdi,2),%eax
lea    (%rdi,%rax,4),%ecx
lea    0x0(,%rdi,4),%eax
lea    (%rax,%rax,2),%esi
lea    (%rdi,%rdi,8),%eax
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    %eax,(%rdx,%rdi,4)
mov    %esi,(%r15,%rdi,4)
mov    %ecx,(%r14,%rdi,4)
add    $0x1,%rdi
add    $0xd,%ecx
add    $0xc,%esi
add    $0x9,%eax
cmp    %rdi,%r11
jne    1500 <bar+0x3f0>
mov    (%r8),%r9d
cmp    $0x2d,%r9d
jne    1535 <bar+0x425>
cmpl   $0x0,(%r15)
jne    1535 <bar+0x425>
xor    %esi,%esi
cmpl   $0x41,0x14(%r14)
je     153a <bar+0x42a>
mov    $0x1,%esi
cmpl   $0x36,0x18(%rdx)
jne    154e <bar+0x43e>
cmpl   $0xc,0x4(%r15)
jne    154e <bar+0x43e>
cmpl   $0x4e,0x18(%r14)
je     1553 <bar+0x443>
mov    $0x1,%esi
cmpl   $0x3f,0x1c(%rdx)
jne    1567 <bar+0x457>
cmpl   $0x18,0x8(%r15)
jne    1567 <bar+0x457>
cmpl   $0x5b,0x1c(%r14)
je     156c <bar+0x45c>
mov    $0x1,%esi
cmpl   $0x48,0x20(%rdx)
jne    1580 <bar+0x470>
cmpl   $0x24,0xc(%r15)
jne    1580 <bar+0x470>
cmpl   $0x68,0x20(%r14)
je     1585 <bar+0x475>
mov    $0x1,%esi
cmpl   $0x51,0x24(%rdx)
jne    1599 <bar+0x489>
cmpl   $0x30,0x10(%r15)
jne    1599 <bar+0x489>
cmpl   $0x75,0x24(%r14)
je     159e <bar+0x48e>
mov    $0x1,%esi
cmpl   $0x5a,0x28(%rdx)
jne    15b5 <bar+0x4a5>
cmpl   $0x3c,0x14(%r15)
jne    15b5 <bar+0x4a5>
cmpl   $0x82,0x28(%r14)
je     15ba <bar+0x4aa>
mov    $0x1,%esi
cmpl   $0x63,0x2c(%rdx)
jne    15d1 <bar+0x4c1>
cmpl   $0x48,0x18(%r15)
jne    15d1 <bar+0x4c1>
cmpl   $0x8f,0x2c(%r14)
je     15d6 <bar+0x4c6>
mov    $0x1,%esi
cmpl   $0x6c,0x30(%rdx)
jne    15ed <bar+0x4dd>
cmpl   $0x54,0x1c(%r15)
jne    15ed <bar+0x4dd>
cmpl   $0x9c,0x30(%r14)
je     15f2 <bar+0x4e2>
mov    $0x1,%esi
cmpl   $0x75,0x34(%rdx)
jne    1609 <bar+0x4f9>
cmpl   $0x60,0x20(%r15)
jne    1609 <bar+0x4f9>
cmpl   $0xa9,0x34(%r14)
je     160e <bar+0x4fe>
mov    $0x1,%esi
cmpl   $0x7e,0x38(%rdx)
jne    164d <bar+0x53d>
cmpl   $0x6c,0x24(%r15)
jne    164d <bar+0x53d>
cmpl   $0xb6,0x38(%r14)
jne    164d <bar+0x53d>
test   %esi,%esi
jne    164d <bar+0x53d>
lea    -0x18(%rbp),%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret
movdqa 0x9c4(%rip),%xmm5
xor    %esi,%esi
test   $0x1,%r9b
jne    1477 <bar+0x367>
jmp    14da <bar+0x3ca>
xor    %eax,%eax
call   1030 <abort@plt>

LLVM IR (-O0):
define void @bar(i32 %0, i32 %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8*
%6 = alloca i64
%7 = alloca i64
%8 = alloca i64
%9 = alloca i64
%10 = alloca i64
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32*
store i32 %0, i32* %3
store i32 %1, i32* %4
%14 = load i32, i32* %3
%15 = zext i32 %14 to i64
%16 = call i8* @llvm.stacksave()
store i8* %16, i8** %5
%17 = alloca i32, i64 %15
store i64 %15, i64* %6
%18 = load i32, i32* %3
%19 = zext i32 %18 to i64
%20 = alloca i32, i64 %19
store i64 %19, i64* %7
%21 = load i32, i32* %3
%22 = zext i32 %21 to i64
%23 = alloca i32, i64 %22
store i64 %22, i64* %8
%24 = load i32, i32* %3
%25 = zext i32 %24 to i64
%26 = alloca i32, i64 %25
store i64 %25, i64* %9
%27 = load i32, i32* %3
%28 = zext i32 %27 to i64
%29 = alloca i32, i64 %28
store i64 %28, i64* %10
%30 = load i32, i32* %3
%31 = zext i32 %30 to i64
store i32* %23, i32** %13
store i32 0, i32* %12
br label %32
32: ; preds = %53, %2
%33 = load i32, i32* %12
%34 = load i32, i32* %3
%35 = icmp slt i32 %33, %34
br i1 %35, label %36, label %56
36: ; preds = %32
%37 = load i32, i32* %12
%38 = mul nsw i32 4, %37
%39 = load i32*, i32** %13
%40 = load i32, i32* %12
%41 = sext i32 %40 to i64
%42 = getelementptr inbounds i32, i32* %39, i64 %41
store i32 %38, i32* %42
%43 = load i32, i32* %12
%44 = mul nsw i32 7, %43
%45 = load i32, i32* %12
%46 = sext i32 %45 to i64
%47 = getelementptr inbounds i32, i32* %17, i64 %46
store i32 %44, i32* %47
%48 = load i32, i32* %12
%49 = mul nsw i32 8, %48
%50 = load i32, i32* %12
%51 = sext i32 %50 to i64
%52 = getelementptr inbounds i32, i32* %20, i64 %51
store i32 %49, i32* %52
br label %53
53: ; preds = %36
%54 = load i32, i32* %12
%55 = add nsw i32 %54, 1
store i32 %55, i32* %12
br label %32
56: ; preds = %32
store i32 0, i32* %11
store i32 0, i32* %12
br label %57
57: ; preds = %91, %56
%58 = load i32, i32* %12
%59 = icmp slt i32 %58, 10
br i1 %59, label %60, label %94
60: ; preds = %57
%61 = load i32*, i32** %13
%62 = load i32, i32* %12
%63 = add nsw i32 5, %62
%64 = sext i32 %63 to i64
%65 = getelementptr inbounds i32, i32* %61, i64 %64
%66 = load i32, i32* %65
%67 = load i32, i32* %12
%68 = mul nsw i32 4, %67
%69 = add nsw i32 20, %68
%70 = icmp ne i32 %66, %69
br i1 %70, label %89, label %71
71: ; preds = %60
%72 = load i32, i32* %12
%73 = sext i32 %72 to i64
%74 = getelementptr inbounds i32, i32* %17, i64 %73
%75 = load i32, i32* %74
%76 = load i32, i32* %12
%77 = mul nsw i32 7, %76
%78 = icmp ne i32 %75, %77
br i1 %78, label %89, label %79
79: ; preds = %71
%80 = load i32, i32* %12
%81 = add nsw i32 5, %80
%82 = sext i32 %81 to i64
%83 = getelementptr inbounds i32, i32* %20, i64 %82
%84 = load i32, i32* %83
%85 = load i32, i32* %12
%86 = mul nsw i32 8, %85
%87 = add nsw i32 40, %86
%88 = icmp ne i32 %84, %87
br i1 %88, label %89, label %90
89: ; preds = %79, %71, %60
store i32 1, i32* %11
br label %90
90: ; preds = %89, %79
br label %91
91: ; preds = %90
%92 = load i32, i32* %12
%93 = add nsw i32 %92, 1
store i32 %93, i32* %12
br label %57
94: ; preds = %57
%95 = load i32, i32* %11
%96 = icmp ne i32 %95, 0
br i1 %96, label %97, label %99
97: ; preds = %94
%98 = call i32 (...) @abort()
unreachable
99: ; preds = %94
store i32 0, i32* %12
br label %100
100: ; preds = %121, %99
%101 = load i32, i32* %12
%102 = load i32, i32* %3
%103 = icmp slt i32 %101, %102
br i1 %103, label %104, label %124
104: ; preds = %100
%105 = load i32, i32* %12
%106 = mul nsw i32 9, %105
%107 = load i32*, i32** %13
%108 = load i32, i32* %12
%109 = sext i32 %108 to i64
%110 = getelementptr inbounds i32, i32* %107, i64 %109
store i32 %106, i32* %110
%111 = load i32, i32* %12
%112 = mul nsw i32 12, %111
%113 = load i32, i32* %12
%114 = sext i32 %113 to i64
%115 = getelementptr inbounds i32, i32* %17, i64 %114
store i32 %112, i32* %115
%116 = load i32, i32* %12
%117 = mul nsw i32 13, %116
%118 = load i32, i32* %12
%119 = sext i32 %118 to i64
%120 = getelementptr inbounds i32, i32* %20, i64 %119
store i32 %117, i32* %120
br label %121
121: ; preds = %104
%122 = load i32, i32* %12
%123 = add nsw i32 %122, 1
store i32 %123, i32* %12
br label %100
124: ; preds = %100
store i32 0, i32* %11
store i32 0, i32* %12
br label %125
125: ; preds = %159, %124
%126 = load i32, i32* %12
%127 = icmp slt i32 %126, 10
br i1 %127, label %128, label %162
128: ; preds = %125
%129 = load i32*, i32** %13
%130 = load i32, i32* %12
%131 = add nsw i32 5, %130
%132 = sext i32 %131 to i64
%133 = getelementptr inbounds i32, i32* %129, i64 %132
%134 = load i32, i32* %133
%135 = load i32, i32* %12
%136 = mul nsw i32 9, %135
%137 = add nsw i32 45, %136
%138 = icmp ne i32 %134, %137
br i1 %138, label %157, label %139
139: ; preds = %128
%140 = load i32, i32* %12
%141 = sext i32 %140 to i64
%142 = getelementptr inbounds i32, i32* %17, i64 %141
%143 = load i32, i32* %142
%144 = load i32, i32* %12
%145 = mul nsw i32 12, %144
%146 = icmp ne i32 %143, %145
br i1 %146, label %157, label %147
147: ; preds = %139
%148 = load i32, i32* %12
%149 = add nsw i32 5, %148
%150 = sext i32 %149 to i64
%151 = getelementptr inbounds i32, i32* %20, i64 %150
%152 = load i32, i32* %151
%153 = load i32, i32* %12
%154 = mul nsw i32 13, %153
%155 = add nsw i32 65, %154
%156 = icmp ne i32 %152, %155
br i1 %156, label %157, label %158
157: ; preds = %147, %139, %128
store i32 1, i32* %11
br label %158
158: ; preds = %157, %147
br label %159
159: ; preds = %158
%160 = load i32, i32* %12
%161 = add nsw i32 %160, 1
store i32 %161, i32* %12
br label %125
162: ; preds = %125
%163 = load i32, i32* %11
%164 = icmp ne i32 %163, 0
br i1 %164, label %165, label %167
165: ; preds = %162
%166 = call i32 (...) @abort()
unreachable
167: ; preds = %162
%168 = load i8*, i8** %5
ret void
}

LLVM IR (-O2):
define void @bar(i32 %0, i32 %1) {
%3 = zext i32 %0 to i64
%4 = alloca i32, i64 %3
%5 = alloca i32, i64 %3
%6 = alloca i32, i64 %3
%7 = icmp sgt i32 %0, 0
br i1 %7, label %8, label %41
8: ; preds = %2
%9 = icmp ult i32 %0, 8
br i1 %9, label %39, label %10
10: ; preds = %8
%11 = and i64 %3, 4294967288
br label %12
12: ; preds = %12, %10
%13 = phi i64 [ 0, %10 ], [ %34, %12 ]
%14 = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %10 ], [ %35, %12 ]
%15 = add <4 x i32> %14, <i32 4, i32 4, i32 4, i32 4>
%16 = shl nsw <4 x i32> %14, <i32 2, i32 2, i32 2, i32 2>
%17 = shl nsw <4 x i32> %15, <i32 2, i32 2, i32 2, i32 2>
%18 = getelementptr inbounds i32, i32* %6, i64 %13
%19 = bitcast i32* %18 to <4 x i32>*
store <4 x i32> %16, <4 x i32>* %19
%20 = getelementptr inbounds i32, i32* %18, i64 4
%21 = bitcast i32* %20 to <4 x i32>*
store <4 x i32> %17, <4 x i32>* %21
%22 = mul nsw <4 x i32> %14, <i32 7, i32 7, i32 7, i32 7>
%23 = mul nsw <4 x i32> %15, <i32 7, i32 7, i32 7, i32 7>
%24 = getelementptr inbounds i32, i32* %4, i64 %13
%25 = bitcast i32* %24 to <4 x i32>*
store <4 x i32> %22, <4 x i32>* %25
%26 = getelementptr inbounds i32, i32* %24, i64 4
%27 = bitcast i32* %26 to <4 x i32>*
store <4 x i32> %23, <4 x i32>* %27
%28 = shl nsw <4 x i32> %14, <i32 3, i32 3, i32 3, i32 3>
%29 = shl nsw <4 x i32> %15, <i32 3, i32 3, i32 3, i32 3>
%30 = getelementptr inbounds i32, i32* %5, i64 %13
%31 = bitcast i32* %30 to <4 x i32>*
store <4 x i32> %28, <4 x i32>* %31
%32 = getelementptr inbounds i32, i32* %30, i64 4
%33 = bitcast i32* %32 to <4 x i32>*
store <4 x i32> %29, <4 x i32>* %33
%34 = add nuw i64 %13, 8
%35 = add <4 x i32> %14, <i32 8, i32 8, i32 8, i32 8>
%36 = icmp eq i64 %34, %11
br i1 %36, label %37, label %12
37: ; preds = %12
%38 = icmp eq i64 %11, %3
br i1 %38, label %43, label %39
39: ; preds = %8, %37
%40 = phi i64 [ 0, %8 ], [ %11, %37 ]
br label %48
41: ; preds = %2
%42 = getelementptr inbounds i32, i32* %6, i64 5
br label %59
43: ; preds = %48, %37
%44 = getelementptr inbounds i32, i32* %6, i64 5
%45 = load i32, i32* %44
%46 = getelementptr inbounds i32, i32* %6, i64 5
%47 = icmp eq i32 %45, 20
br i1 %47, label %59, label %67
48: ; preds = %39, %48
%49 = phi i64 [ %57, %48 ], [ %40, %39 ]
%50 = trunc i64 %49 to i32
%51 = shl nsw i32 %50, 2
%52 = getelementptr inbounds i32, i32* %6, i64 %49
store i32 %51, i32* %52
%53 = mul nsw i32 %50, 7
%54 = getelementptr inbounds i32, i32* %4, i64 %49
store i32 %53, i32* %54
%55 = shl nsw i32 %50, 3
%56 = getelementptr inbounds i32, i32* %5, i64 %49
store i32 %55, i32* %56
%57 = add nuw nsw i64 %49, 1
%58 = icmp eq i64 %57, %3
br i1 %58, label %43, label %48
59: ; preds = %41, %43
%60 = phi i32* [ %42, %41 ], [ %46, %43 ]
%61 = load i32, i32* %4
%62 = icmp eq i32 %61, 0
br i1 %62, label %63, label %67
63: ; preds = %59
%64 = getelementptr inbounds i32, i32* %5, i64 5
%65 = load i32, i32* %64
%66 = icmp eq i32 %65, 40
br i1 %66, label %70, label %67
67: ; preds = %63, %59, %43
%68 = phi i32* [ %60, %63 ], [ %60, %59 ], [ %46, %43 ]
%69 = phi i32 [ 20, %63 ], [ 20, %59 ], [ %45, %43 ]
br label %70
70: ; preds = %63, %67
%71 = phi i32* [ %68, %67 ], [ %60, %63 ]
%72 = phi i32 [ %69, %67 ], [ 20, %63 ]
%73 = phi i32 [ 1, %67 ], [ 0, %63 ]
%74 = getelementptr inbounds i32, i32* %6, i64 6
%75 = load i32, i32* %74
%76 = icmp eq i32 %75, 24
br i1 %76, label %77, label %85
77: ; preds = %70
%78 = getelementptr inbounds i32, i32* %4, i64 1
%79 = load i32, i32* %78
%80 = icmp eq i32 %79, 7
br i1 %80, label %81, label %85
81: ; preds = %77
%82 = getelementptr inbounds i32, i32* %5, i64 6
%83 = load i32, i32* %82
%84 = icmp eq i32 %83, 48
br i1 %84, label %86, label %85
85: ; preds = %81, %77, %70
br label %86
86: ; preds = %85, %81
%87 = phi i32 [ 1, %85 ], [ %73, %81 ]
%88 = getelementptr inbounds i32, i32* %6, i64 7
%89 = load i32, i32* %88
%90 = icmp eq i32 %89, 28
br i1 %90, label %91, label %99
91: ; preds = %86
%92 = getelementptr inbounds i32, i32* %4, i64 2
%93 = load i32, i32* %92
%94 = icmp eq i32 %93, 14
br i1 %94, label %95, label %99
95: ; preds = %91
%96 = getelementptr inbounds i32, i32* %5, i64 7
%97 = load i32, i32* %96
%98 = icmp eq i32 %97, 56
br i1 %98, label %100, label %99
99: ; preds = %95, %91, %86
br label %100
100: ; preds = %99, %95
%101 = phi i32 [ 1, %99 ], [ %87, %95 ]
%102 = getelementptr inbounds i32, i32* %6, i64 8
%103 = load i32, i32* %102
%104 = icmp eq i32 %103, 32
br i1 %104, label %105, label %113
105: ; preds = %100
%106 = getelementptr inbounds i32, i32* %4, i64 3
%107 = load i32, i32* %106
%108 = icmp eq i32 %107, 21
br i1 %108, label %109, label %113
109: ; preds = %105
%110 = getelementptr inbounds i32, i32* %5, i64 8
%111 = load i32, i32* %110
%112 = icmp eq i32 %111, 64
br i1 %112, label %114, label %113
113: ; preds = %109, %105, %100
br label %114
114: ; preds = %113, %109
%115 = phi i32 [ 1, %113 ], [ %101, %109 ]
%116 = getelementptr inbounds i32, i32* %6, i64 9
%117 = load i32, i32* %116
%118 = icmp eq i32 %117, 36
br i1 %118, label %119, label %127
119: ; preds = %114
%120 = getelementptr inbounds i32, i32* %4, i64 4
%121 = load i32, i32* %120
%122 = icmp eq i32 %121, 28
br i1 %122, label %123, label %127
123: ; preds = %119
%124 = getelementptr inbounds i32, i32* %5, i64 9
%125 = load i32, i32* %124
%126 = icmp eq i32 %125, 72
br i1 %126, label %128, label %127
127: ; preds = %123, %119, %114
br label %128
128: ; preds = %127, %123
%129 = phi i32 [ 1, %127 ], [ %115, %123 ]
%130 = getelementptr inbounds i32, i32* %6, i64 10
%131 = load i32, i32* %130
%132 = icmp eq i32 %131, 40
br i1 %132, label %133, label %141
133: ; preds = %128
%134 = getelementptr inbounds i32, i32* %4, i64 5
%135 = load i32, i32* %134
%136 = icmp eq i32 %135, 35
br i1 %136, label %137, label %141
137: ; preds = %133
%138 = getelementptr inbounds i32, i32* %5, i64 10
%139 = load i32, i32* %138
%140 = icmp eq i32 %139, 80
br i1 %140, label %142, label %141
141: ; preds = %137, %133, %128
br label %142
142: ; preds = %141, %137
%143 = phi i32 [ 1, %141 ], [ %129, %137 ]
%144 = getelementptr inbounds i32, i32* %6, i64 11
%145 = load i32, i32* %144
%146 = icmp eq i32 %145, 44
br i1 %146, label %147, label %155
147: ; preds = %142
%148 = getelementptr inbounds i32, i32* %4, i64 6
%149 = load i32, i32* %148
%150 = icmp eq i32 %149, 42
br i1 %150, label %151, label %155
151: ; preds = %147
%152 = getelementptr inbounds i32, i32* %5, i64 11
%153 = load i32, i32* %152
%154 = icmp eq i32 %153, 88
br i1 %154, label %156, label %155
155: ; preds = %151, %147, %142
br label %156
156: ; preds = %155, %151
%157 = phi i32 [ 1, %155 ], [ %143, %151 ]
%158 = getelementptr inbounds i32, i32* %6, i64 12
%159 = load i32, i32* %158
%160 = icmp eq i32 %159, 48
br i1 %160, label %161, label %169
161: ; preds = %156
%162 = getelementptr inbounds i32, i32* %4, i64 7
%163 = load i32, i32* %162
%164 = icmp eq i32 %163, 49
br i1 %164, label %165, label %169
165: ; preds = %161
%166 = getelementptr inbounds i32, i32* %5, i64 12
%167 = load i32, i32* %166
%168 = icmp eq i32 %167, 96
br i1 %168, label %170, label %169
169: ; preds = %165, %161, %156
br label %170
170: ; preds = %169, %165
%171 = phi i32 [ 1, %169 ], [ %157, %165 ]
%172 = getelementptr inbounds i32, i32* %6, i64 13
%173 = load i32, i32* %172
%174 = icmp eq i32 %173, 52
br i1 %174, label %175, label %183
175: ; preds = %170
%176 = getelementptr inbounds i32, i32* %4, i64 8
%177 = load i32, i32* %176
%178 = icmp eq i32 %177, 56
br i1 %178, label %179, label %183
179: ; preds = %175
%180 = getelementptr inbounds i32, i32* %5, i64 13
%181 = load i32, i32* %180
%182 = icmp eq i32 %181, 104
br i1 %182, label %184, label %183
183: ; preds = %179, %175, %170
br label %184
184: ; preds = %183, %179
%185 = phi i32 [ 1, %183 ], [ %171, %179 ]
%186 = getelementptr inbounds i32, i32* %6, i64 14
%187 = load i32, i32* %186
%188 = icmp eq i32 %187, 56
br i1 %188, label %189, label %257
189: ; preds = %184
%190 = getelementptr inbounds i32, i32* %4, i64 9
%191 = load i32, i32* %190
%192 = icmp eq i32 %191, 63
br i1 %192, label %193, label %257
193: ; preds = %189
%194 = getelementptr inbounds i32, i32* %5, i64 14
%195 = load i32, i32* %194
%196 = icmp eq i32 %195, 112
%197 = icmp eq i32 %185, 0
%198 = select i1 %196, i1 %197, i1 false
br i1 %198, label %199, label %257
199: ; preds = %193
br i1 %7, label %200, label %261
200: ; preds = %199
%201 = icmp ult i32 %0, 4
br i1 %201, label %255, label %202
202: ; preds = %200
%203 = and i64 %3, 4294967292
%204 = add nsw i64 %203, -4
%205 = lshr exact i64 %204, 2
%206 = add nuw nsw i64 %205, 1
%207 = and i64 %206, 1
%208 = icmp eq i64 %204, 0
br i1 %208, label %239, label %209
209: ; preds = %202
%210 = and i64 %206, 9223372036854775806
br label %211
211: ; preds = %211, %209
%212 = phi i64 [ 0, %209 ], [ %235, %211 ]
%213 = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %209 ], [ %236, %211 ]
%214 = phi i64 [ 0, %209 ], [ %237, %211 ]
%215 = mul nsw <4 x i32> %213, <i32 9, i32 9, i32 9, i32 9>
%216 = getelementptr inbounds i32, i32* %6, i64 %212
%217 = bitcast i32* %216 to <4 x i32>*
store <4 x i32> %215, <4 x i32>* %217
%218 = mul nsw <4 x i32> %213, <i32 12, i32 12, i32 12, i32 12>
%219 = getelementptr inbounds i32, i32* %4, i64 %212
%220 = bitcast i32* %219 to <4 x i32>*
store <4 x i32> %218, <4 x i32>* %220
%221 = mul nsw <4 x i32> %213, <i32 13, i32 13, i32 13, i32 13>
%222 = getelementptr inbounds i32, i32* %5, i64 %212
%223 = bitcast i32* %222 to <4 x i32>*
store <4 x i32> %221, <4 x i32>* %223
%224 = or i64 %212, 4
%225 = add <4 x i32> %213, <i32 4, i32 4, i32 4, i32 4>
%226 = mul nsw <4 x i32> %225, <i32 9, i32 9, i32 9, i32 9>
%227 = getelementptr inbounds i32, i32* %6, i64 %224
%228 = bitcast i32* %227 to <4 x i32>*
store <4 x i32> %226, <4 x i32>* %228
%229 = mul nsw <4 x i32> %225, <i32 12, i32 12, i32 12, i32 12>
%230 = getelementptr inbounds i32, i32* %4, i64 %224
%231 = bitcast i32* %230 to <4 x i32>*
store <4 x i32> %229, <4 x i32>* %231
%232 = mul nsw <4 x i32> %225, <i32 13, i32 13, i32 13, i32 13>
%233 = getelementptr inbounds i32, i32* %5, i64 %224
%234 = bitcast i32* %233 to <4 x i32>*
store <4 x i32> %232, <4 x i32>* %234
%235 = add nuw i64 %212, 8
%236 = add <4 x i32> %213, <i32 8, i32 8, i32 8, i32 8>
%237 = add i64 %214, 2
%238 = icmp eq i64 %237, %210
br i1 %238, label %239, label %211
239: ; preds = %211, %202
%240 = phi i64 [ 0, %202 ], [ %235, %211 ]
%241 = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %202 ], [ %236, %211 ]
%242 = icmp eq i64 %207, 0
br i1 %242, label %253, label %243
243: ; preds = %239
%244 = mul nsw <4 x i32> %241, <i32 9, i32 9, i32 9, i32 9>
%245 = getelementptr inbounds i32, i32* %6, i64 %240
%246 = bitcast i32* %245 to <4 x i32>*
store <4 x i32> %244, <4 x i32>* %246
%247 = mul nsw <4 x i32> %241, <i32 12, i32 12, i32 12, i32 12>
%248 = getelementptr inbounds i32, i32* %4, i64 %240
%249 = bitcast i32* %248 to <4 x i32>*
store <4 x i32> %247, <4 x i32>* %249
%250 = mul nsw <4 x i32> %241, <i32 13, i32 13, i32 13, i32 13>
%251 = getelementptr inbounds i32, i32* %5, i64 %240
%252 = bitcast i32* %251 to <4 x i32>*
store <4 x i32> %250, <4 x i32>* %252
br label %253
253: ; preds = %239, %243
%254 = icmp eq i64 %203, %3
br i1 %254, label %259, label %255
255: ; preds = %200, %253
%256 = phi i64 [ 0, %200 ], [ %203, %253 ]
br label %264
257: ; preds = %193, %189, %184
%258 = tail call i32 (...) @abort()
unreachable
259: ; preds = %264, %253
%260 = load i32, i32* %71
br label %261
261: ; preds = %259, %199
%262 = phi i32 [ %260, %259 ], [ %72, %199 ]
%263 = icmp eq i32 %262, 45
br i1 %263, label %275, label %282
264: ; preds = %255, %264
%265 = phi i64 [ %273, %264 ], [ %256, %255 ]
%266 = trunc i64 %265 to i32
%267 = mul nsw i32 %266, 9
%268 = getelementptr inbounds i32, i32* %6, i64 %265
store i32 %267, i32* %268
%269 = mul nsw i32 %266, 12
%270 = getelementptr inbounds i32, i32* %4, i64 %265
store i32 %269, i32* %270
%271 = mul nsw i32 %266, 13
%272 = getelementptr inbounds i32, i32* %5, i64 %265
store i32 %271, i32* %272
%273 = add nuw nsw i64 %265, 1
%274 = icmp eq i64 %273, %3
br i1 %274, label %259, label %264
275: ; preds = %261
%276 = load i32, i32* %4
%277 = icmp eq i32 %276, 0
br i1 %277, label %278, label %282
278: ; preds = %275
%279 = getelementptr inbounds i32, i32* %5, i64 5
%280 = load i32, i32* %279
%281 = icmp eq i32 %280, 65
br i1 %281, label %283, label %282
282: ; preds = %278, %275, %261
br label %283
283: ; preds = %278, %282
%284 = phi i32 [ 1, %282 ], [ 0, %278 ]
%285 = load i32, i32* %74
%286 = icmp eq i32 %285, 54
br i1 %286, label %287, label %295
287: ; preds = %283
%288 = getelementptr inbounds i32, i32* %4, i64 1
%289 = load i32, i32* %288
%290 = icmp eq i32 %289, 12
br i1 %290, label %291, label %295
291: ; preds = %287
%292 = getelementptr inbounds i32, i32* %5, i64 6
%293 = load i32, i32* %292
%294 = icmp eq i32 %293, 78
br i1 %294, label %296, label %295
295: ; preds = %291, %287, %283
br label %296
296: ; preds = %295, %291
%297 = phi i32 [ 1, %295 ], [ %284, %291 ]
%298 = load i32, i32* %88
%299 = icmp eq i32 %298, 63
br i1 %299, label %300, label %308
300: ; preds = %296
%301 = getelementptr inbounds i32, i32* %4, i64 2
%302 = load i32, i32* %301
%303 = icmp eq i32 %302, 24
br i1 %303, label %304, label %308
304: ; preds = %300
%305 = getelementptr inbounds i32, i32* %5, i64 7
%306 = load i32, i32* %305
%307 = icmp eq i32 %306, 91
br i1 %307, label %309, label %308
308: ; preds = %304, %300, %296
br label %309
309: ; preds = %308, %304
%310 = phi i32 [ 1, %308 ], [ %297, %304 ]
%311 = load i32, i32* %102
%312 = icmp eq i32 %311, 72
br i1 %312, label %313, label %321
313: ; preds = %309
%314 = getelementptr inbounds i32, i32* %4, i64 3
%315 = load i32, i32* %314
%316 = icmp eq i32 %315, 36
br i1 %316, label %317, label %321
317: ; preds = %313
%318 = getelementptr inbounds i32, i32* %5, i64 8
%319 = load i32, i32* %318
%320 = icmp eq i32 %319, 104
br i1 %320, label %322, label %321
321: ; preds = %317, %313, %309
br label %322
322: ; preds = %321, %317
%323 = phi i32 [ 1, %321 ], [ %310, %317 ]
%324 = load i32, i32* %116
%325 = icmp eq i32 %324, 81
br i1 %325, label %326, label %334
326: ; preds = %322
%327 = getelementptr inbounds i32, i32* %4, i64 4
%328 = load i32, i32* %327
%329 = icmp eq i32 %328, 48
br i1 %329, label %330, label %334
330: ; preds = %326
%331 = getelementptr inbounds i32, i32* %5, i64 9
%332 = load i32, i32* %331
%333 = icmp eq i32 %332, 117
br i1 %333, label %335, label %334
334: ; preds = %330, %326, %322
br label %335
335: ; preds = %334, %330
%336 = phi i32 [ 1, %334 ], [ %323, %330 ]
%337 = load i32, i32* %130
%338 = icmp eq i32 %337, 90
br i1 %338, label %339, label %347
339: ; preds = %335
%340 = getelementptr inbounds i32, i32* %4, i64 5
%341 = load i32, i32* %340
%342 = icmp eq i32 %341, 60
br i1 %342, label %343, label %347
343: ; preds = %339
%344 = getelementptr inbounds i32, i32* %5, i64 10
%345 = load i32, i32* %344
%346 = icmp eq i32 %345, 130
br i1 %346, label %348, label %347
347: ; preds = %343, %339, %335
br label %348
348: ; preds = %347, %343
%349 = phi i32 [ 1, %347 ], [ %336, %343 ]
%350 = load i32, i32* %144
%351 = icmp eq i32 %350, 99
br i1 %351, label %352, label %360
352: ; preds = %348
%353 = getelementptr inbounds i32, i32* %4, i64 6
%354 = load i32, i32* %353
%355 = icmp eq i32 %354, 72
br i1 %355, label %356, label %360
356: ; preds = %352
%357 = getelementptr inbounds i32, i32* %5, i64 11
%358 = load i32, i32* %357
%359 = icmp eq i32 %358, 143
br i1 %359, label %361, label %360
360: ; preds = %356, %352, %348
br label %361
361: ; preds = %360, %356
%362 = phi i32 [ 1, %360 ], [ %349, %356 ]
%363 = load i32, i32* %158
%364 = icmp eq i32 %363, 108
br i1 %364, label %365, label %373
365: ; preds = %361
%366 = getelementptr inbounds i32, i32* %4, i64 7
%367 = load i32, i32* %366
%368 = icmp eq i32 %367, 84
br i1 %368, label %369, label %373
369: ; preds = %365
%370 = getelementptr inbounds i32, i32* %5, i64 12
%371 = load i32, i32* %370
%372 = icmp eq i32 %371, 156
br i1 %372, label %374, label %373
373: ; preds = %369, %365, %361
br label %374
374: ; preds = %373, %369
%375 = phi i32 [ 1, %373 ], [ %362, %369 ]
%376 = load i32, i32* %172
%377 = icmp eq i32 %376, 117
br i1 %377, label %378, label %386
378: ; preds = %374
%379 = getelementptr inbounds i32, i32* %4, i64 8
%380 = load i32, i32* %379
%381 = icmp eq i32 %380, 96
br i1 %381, label %382, label %386
382: ; preds = %378
%383 = getelementptr inbounds i32, i32* %5, i64 13
%384 = load i32, i32* %383
%385 = icmp eq i32 %384, 169
br i1 %385, label %387, label %386
386: ; preds = %382, %378, %374
br label %387
387: ; preds = %386, %382
%388 = phi i32 [ 1, %386 ], [ %375, %382 ]
%389 = load i32, i32* %186
%390 = icmp eq i32 %389, 126
br i1 %390, label %391, label %401
391: ; preds = %387
%392 = getelementptr inbounds i32, i32* %4, i64 9
%393 = load i32, i32* %392
%394 = icmp eq i32 %393, 108
br i1 %394, label %395, label %401
395: ; preds = %391
%396 = getelementptr inbounds i32, i32* %5, i64 14
%397 = load i32, i32* %396
%398 = icmp eq i32 %397, 182
%399 = icmp eq i32 %388, 0
%400 = select i1 %398, i1 %399, i1 false
br i1 %400, label %403, label %401
401: ; preds = %395, %391, %387
%402 = tail call i32 (...) @abort()
unreachable
403: ; preds = %395
ret void
}