#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*/ fprintf(int /*<<< orphan*/, char *, int, char *);
int omp_get_num_threads();
int /*<<< orphan*/ stdout;
int main(int argc, char *argv[]) {
  int i, error = 0, step = 1;
  int A[100];
  for (i = 0; i < 100; i++)
    A[i] = 0;
#pragma omp for schedule(ompss_dynamic)
  for (i = 0; i < 100; i += 1)
    A[i]++;
#pragma omp for schedule(ompss_dynamic)
  for (i = 0; i < 100; i += step)
    A[i]--;
  for (i = 0; i < 100; i++)
    if (A[i] != 0)
      error++;
  fprintf(stdout, "Result with %d threads is %s\n", omp_get_num_threads(),
          error ? "UNSUCCESSFUL" : "Successful");
  return error;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1c0,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
movl   $0x1,-0x1c(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x64,-0x14(%rbp)
jge    1175 <main+0x55>
movslq -0x14(%rbp),%rax
movl   $0x0,-0x1b0(%rbp,%rax,4)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    114e <main+0x2e>
movl   $0x0,-0x14(%rbp)
cmpl   $0x64,-0x14(%rbp)
jge    11a9 <main+0x89>
movslq -0x14(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%ecx
add    $0x1,%ecx
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    117c <main+0x5c>
movl   $0x0,-0x14(%rbp)
cmpl   $0x64,-0x14(%rbp)
jge    11dd <main+0xbd>
movslq -0x14(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x1c(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
jmp    11b0 <main+0x90>
movl   $0x0,-0x14(%rbp)
cmpl   $0x64,-0x14(%rbp)
jge    121c <main+0xfc>
movslq -0x14(%rbp),%rax
cmpl   $0x0,-0x1b0(%rbp,%rax,4)
je     1209 <main+0xe9>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    120e <main+0xee>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    11e4 <main+0xc4>
mov    0x2dbd(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x1b4(%rbp)
mov    $0x0,%al
call   1030 <omp_get_num_threads@plt>
mov    -0x1b4(%rbp),%edi
mov    %eax,%edx
mov    -0x18(%rbp),%esi
lea    0xde7(%rip),%rcx
lea    0xdd3(%rip),%rax
cmp    $0x0,%esi
cmovne %rax,%rcx
lea    0xda7(%rip),%rsi
call   1040 <fprintf@plt>
mov    -0x18(%rbp),%eax
add    $0x1c0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %rbx
sub    $0x198,%rsp
mov    %rsp,%rdi
mov    $0x190,%edx
xor    %esi,%esi
call   1030 <memset@plt>
movdqa (%rsp),%xmm1
movdqa 0x10(%rsp),%xmm2
movdqa 0x20(%rsp),%xmm3
movdqa 0x30(%rsp),%xmm4
pcmpeqd %xmm0,%xmm0
psubd  %xmm0,%xmm1
movdqa %xmm1,(%rsp)
psubd  %xmm0,%xmm2
movdqa %xmm2,0x10(%rsp)
psubd  %xmm0,%xmm3
movdqa %xmm3,0x20(%rsp)
psubd  %xmm0,%xmm4
movdqa %xmm4,0x30(%rsp)
movdqa 0x40(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x40(%rsp)
movdqa 0x50(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x50(%rsp)
movdqa 0x60(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x60(%rsp)
movdqa 0x70(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x70(%rsp)
movdqa 0x80(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x80(%rsp)
movdqa 0x90(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x90(%rsp)
movdqa 0xa0(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0xa0(%rsp)
movdqa 0xb0(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0xb0(%rsp)
movdqa 0xc0(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0xc0(%rsp)
movdqa 0xd0(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0xd0(%rsp)
movdqa 0xe0(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0xe0(%rsp)
movdqa 0xf0(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0xf0(%rsp)
movdqa 0x100(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x100(%rsp)
movdqa 0x110(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x110(%rsp)
movdqa 0x120(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x120(%rsp)
movdqa 0x130(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x130(%rsp)
movdqa 0x140(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x140(%rsp)
movdqa 0x150(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x150(%rsp)
movdqa 0x160(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x160(%rsp)
movdqa 0x170(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x170(%rsp)
movdqa 0x180(%rsp),%xmm1
psubd  %xmm0,%xmm1
movdqa %xmm1,0x180(%rsp)
movdqa (%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,(%rsp)
movdqa 0x10(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0x10(%rsp)
movdqa 0x20(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0x20(%rsp)
movdqa 0x30(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0x30(%rsp)
movdqa 0x40(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0x40(%rsp)
movdqa 0x50(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0x50(%rsp)
movdqa 0x60(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0x60(%rsp)
movdqa 0x70(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0x70(%rsp)
movdqa 0x80(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0x80(%rsp)
movdqa 0x90(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0x90(%rsp)
movdqa 0xa0(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0xa0(%rsp)
movdqa 0xb0(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0xb0(%rsp)
movdqa 0xc0(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0xc0(%rsp)
movdqa 0xd0(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0xd0(%rsp)
movdqa 0xe0(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0xe0(%rsp)
movdqa 0xf0(%rsp),%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm1,0xf0(%rsp)
movdqa 0x100(%rsp),%xmm8
paddd  %xmm0,%xmm8
movdqa %xmm8,0x100(%rsp)
movdqa 0x110(%rsp),%xmm11
paddd  %xmm0,%xmm11
movdqa %xmm11,0x110(%rsp)
movdqa 0x120(%rsp),%xmm12
paddd  %xmm0,%xmm12
movdqa %xmm12,0x120(%rsp)
movdqa 0x130(%rsp),%xmm13
paddd  %xmm0,%xmm13
movdqa %xmm13,0x130(%rsp)
movdqa 0x140(%rsp),%xmm2
paddd  %xmm0,%xmm2
movdqa %xmm2,0x140(%rsp)
movdqa 0x150(%rsp),%xmm9
paddd  %xmm0,%xmm9
movdqa %xmm9,0x150(%rsp)
movdqa 0x160(%rsp),%xmm10
paddd  %xmm0,%xmm10
movdqa %xmm10,0x160(%rsp)
movdqa 0x170(%rsp),%xmm7
paddd  %xmm0,%xmm7
movdqa %xmm7,0x170(%rsp)
paddd  0x180(%rsp),%xmm0
movdqa %xmm0,0x180(%rsp)
pxor   %xmm3,%xmm3
movdqa (%rsp),%xmm4
pcmpeqd %xmm3,%xmm4
movdqa 0x10(%rsp),%xmm5
pcmpeqd %xmm3,%xmm5
paddd  %xmm4,%xmm5
movdqa 0x20(%rsp),%xmm4
pcmpeqd %xmm3,%xmm4
movdqa 0x30(%rsp),%xmm6
pcmpeqd %xmm3,%xmm6
paddd  %xmm4,%xmm6
paddd  %xmm5,%xmm6
movdqa 0x40(%rsp),%xmm4
pcmpeqd %xmm3,%xmm4
movdqa 0x50(%rsp),%xmm5
pcmpeqd %xmm3,%xmm5
paddd  %xmm4,%xmm5
movdqa 0x60(%rsp),%xmm4
pcmpeqd %xmm3,%xmm4
paddd  %xmm5,%xmm4
paddd  %xmm6,%xmm4
movdqa 0x70(%rsp),%xmm5
pcmpeqd %xmm3,%xmm5
movdqa 0x80(%rsp),%xmm6
pcmpeqd %xmm3,%xmm6
paddd  %xmm5,%xmm6
movdqa 0x90(%rsp),%xmm5
pcmpeqd %xmm3,%xmm5
paddd  %xmm6,%xmm5
movdqa 0xa0(%rsp),%xmm6
pcmpeqd %xmm3,%xmm6
paddd  %xmm5,%xmm6
paddd  %xmm4,%xmm6
movdqa 0xb0(%rsp),%xmm4
pcmpeqd %xmm3,%xmm4
movdqa 0xc0(%rsp),%xmm5
pcmpeqd %xmm3,%xmm5
paddd  %xmm4,%xmm5
movdqa 0xd0(%rsp),%xmm4
pcmpeqd %xmm3,%xmm4
paddd  %xmm5,%xmm4
movdqa 0xe0(%rsp),%xmm5
pcmpeqd %xmm3,%xmm5
paddd  %xmm4,%xmm5
pcmpeqd %xmm3,%xmm1
paddd  %xmm5,%xmm1
paddd  %xmm6,%xmm1
pcmpeqd %xmm3,%xmm8
pcmpeqd %xmm3,%xmm11
paddd  %xmm8,%xmm11
pcmpeqd %xmm3,%xmm12
paddd  %xmm11,%xmm12
pcmpeqd %xmm3,%xmm13
paddd  %xmm12,%xmm13
pcmpeqd %xmm3,%xmm2
paddd  %xmm13,%xmm2
paddd  %xmm1,%xmm2
pcmpeqd %xmm3,%xmm9
pcmpeqd %xmm3,%xmm10
paddd  %xmm9,%xmm10
pcmpeqd %xmm3,%xmm7
paddd  %xmm10,%xmm7
pcmpeqd %xmm3,%xmm0
paddd  %xmm7,%xmm0
paddd  %xmm2,%xmm0
paddd  0x974(%rip),%xmm0
pshufd $0xee,%xmm0,%xmm1
paddd  %xmm0,%xmm1
pshufd $0x55,%xmm1,%xmm0
paddd  %xmm1,%xmm0
movd   %xmm0,%ebx
mov    0x2937(%rip),%rax
mov    (%rax),%ebp
xor    %eax,%eax
call   1040 <omp_get_num_threads@plt>
test   %ebx,%ebx
lea    0x980(%rip),%rdx
lea    0x96c(%rip),%rcx
cmove  %rdx,%rcx
lea    0x943(%rip),%rsi
mov    %ebp,%edi
mov    %eax,%edx
call   1050 <fprintf@plt>
mov    %ebx,%eax
add    $0x198,%rsp
pop    %rbx
pop    %rbp
ret

LLVM IR (-O0):
@stdout = global i32 0
@.str = [30 x i8] c"Result with %d threads is %s\0A\00"
@.str.1 = [13 x i8] c"UNSUCCESSFUL\00"
@.str.2 = [11 x i8] c"Successful\00"
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca [100 x i32]
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
store i32 0, i32* %7
store i32 1, i32* %8
store i32 0, i32* %6
br label %10
10: ; preds = %17, %2
%11 = load i32, i32* %6
%12 = icmp slt i32 %11, 100
br i1 %12, label %13, label %20
13: ; preds = %10
%14 = load i32, i32* %6
%15 = sext i32 %14 to i64
%16 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 %15
store i32 0, i32* %16
br label %17
17: ; preds = %13
%18 = load i32, i32* %6
%19 = add nsw i32 %18, 1
store i32 %19, i32* %6
br label %10
20: ; preds = %10
store i32 0, i32* %6
br label %21
21: ; preds = %30, %20
%22 = load i32, i32* %6
%23 = icmp slt i32 %22, 100
br i1 %23, label %24, label %33
24: ; preds = %21
%25 = load i32, i32* %6
%26 = sext i32 %25 to i64
%27 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 %26
%28 = load i32, i32* %27
%29 = add nsw i32 %28, 1
store i32 %29, i32* %27
br label %30
30: ; preds = %24
%31 = load i32, i32* %6
%32 = add nsw i32 %31, 1
store i32 %32, i32* %6
br label %21
33: ; preds = %21
store i32 0, i32* %6
br label %34
34: ; preds = %43, %33
%35 = load i32, i32* %6
%36 = icmp slt i32 %35, 100
br i1 %36, label %37, label %47
37: ; preds = %34
%38 = load i32, i32* %6
%39 = sext i32 %38 to i64
%40 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 %39
%41 = load i32, i32* %40
%42 = add nsw i32 %41, -1
store i32 %42, i32* %40
br label %43
43: ; preds = %37
%44 = load i32, i32* %8
%45 = load i32, i32* %6
%46 = add nsw i32 %45, %44
store i32 %46, i32* %6
br label %34
47: ; preds = %34
store i32 0, i32* %6
br label %48
48: ; preds = %61, %47
%49 = load i32, i32* %6
%50 = icmp slt i32 %49, 100
br i1 %50, label %51, label %64
51: ; preds = %48
%52 = load i32, i32* %6
%53 = sext i32 %52 to i64
%54 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 %53
%55 = load i32, i32* %54
%56 = icmp ne i32 %55, 0
br i1 %56, label %57, label %60
57: ; preds = %51
%58 = load i32, i32* %7
%59 = add nsw i32 %58, 1
store i32 %59, i32* %7
br label %60
60: ; preds = %57, %51
br label %61
61: ; preds = %60
%62 = load i32, i32* %6
%63 = add nsw i32 %62, 1
store i32 %63, i32* %6
br label %48
64: ; preds = %48
%65 = load i32, i32* @stdout
%66 = call i32 (...) @omp_get_num_threads()
%67 = load i32, i32* %7
%68 = icmp ne i32 %67, 0
%69 = zext i1 %68 to i64
%70 = select i1 %68, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0)
%71 = call i32 @fprintf(i32 %65, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str, i64 0, i64 0), i32 %66, i8* %70)
%72 = load i32, i32* %7
ret i32 %72
}

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