#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*/ printf(char *, int);
int main() {
  int n = 200, i, j, k = 1;
  int a[n + 1], p[100];
  for (i = 1; i <= n; i++) {
    a[i] = 1;
  }
  a[1] = 1;
  a[2] = 1;
  for (i = 2; i <= n; i++) {
    if (a[i]) {
      for (j = 2 * i; j <= n; j += i)
        a[j] = 0;
      if (i > 100) {
        p[k] = i;
        k++;
      }
    }
  }
  printf("%d\n", k - 1);
  for (i = 1; i < k - 1; i++) {
    printf("%d ", p[i]);
  }
  printf("%d", p[i]);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1d0,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0xc8,-0x8(%rbp)
movl   $0x1,-0x14(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %rsp,%rcx
mov    %rcx,-0x20(%rbp)
lea    0xf(,%rax,4),%rdx
and    $0xfffffffffffffff0,%rdx
mov    %rsp,%rcx
sub    %rdx,%rcx
mov    %rcx,-0x1c8(%rbp)
mov    %rcx,%rsp
mov    %rax,-0x28(%rbp)
movl   $0x1,-0xc(%rbp)
mov    -0xc(%rbp),%eax
cmp    -0x8(%rbp),%eax
jg     1190 <main+0x80>
mov    -0x1c8(%rbp),%rax
movslq -0xc(%rbp),%rcx
movl   $0x1,(%rax,%rcx,4)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1164 <main+0x54>
mov    -0x1c8(%rbp),%rax
movl   $0x1,0x4(%rax)
movl   $0x1,0x8(%rax)
movl   $0x2,-0xc(%rbp)
mov    -0xc(%rbp),%eax
cmp    -0x8(%rbp),%eax
jg     123b <main+0x12b>
mov    -0x1c8(%rbp),%rax
movslq -0xc(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     1228 <main+0x118>
mov    -0xc(%rbp),%eax
shl    $0x1,%eax
mov    %eax,-0x10(%rbp)
mov    -0x10(%rbp),%eax
cmp    -0x8(%rbp),%eax
jg     1202 <main+0xf2>
mov    -0x1c8(%rbp),%rax
movslq -0x10(%rbp),%rcx
movl   $0x0,(%rax,%rcx,4)
mov    -0xc(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x10(%rbp)
jmp    11d6 <main+0xc6>
cmpl   $0x64,-0xc(%rbp)
jle    1223 <main+0x113>
mov    -0xc(%rbp),%ecx
movslq -0x14(%rbp),%rax
mov    %ecx,-0x1c0(%rbp,%rax,4)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1228 <main+0x118>
jmp    122d <main+0x11d>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    11ac <main+0x9c>
mov    -0x14(%rbp),%esi
sub    $0x1,%esi
lea    0xdb8(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0xc(%rbp)
mov    -0xc(%rbp),%eax
mov    -0x14(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jge    128a <main+0x17a>
movslq -0xc(%rbp),%rax
mov    -0x1c0(%rbp,%rax,4),%esi
lea    0xd8d(%rip),%rdi
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1254 <main+0x144>
movslq -0xc(%rbp),%rax
mov    -0x1c0(%rbp,%rax,4),%esi
lea    0xd6c(%rip),%rdi
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,%rsp
mov    -0x4(%rbp),%eax
mov    %rbp,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x4d8,%rsp
movaps 0xed8(%rip),%xmm0
movups %xmm0,0x14(%rsp)
movups %xmm0,0x24(%rsp)
movups %xmm0,0x34(%rsp)
movups %xmm0,0x44(%rsp)
movups %xmm0,0x54(%rsp)
movups %xmm0,0x64(%rsp)
movups %xmm0,0x74(%rsp)
movups %xmm0,0x84(%rsp)
movups %xmm0,0x94(%rsp)
movups %xmm0,0xa4(%rsp)
movups %xmm0,0xb4(%rsp)
movups %xmm0,0xc4(%rsp)
movups %xmm0,0xd4(%rsp)
movups %xmm0,0xe4(%rsp)
movups %xmm0,0xf4(%rsp)
movups %xmm0,0x104(%rsp)
movups %xmm0,0x114(%rsp)
movups %xmm0,0x124(%rsp)
movups %xmm0,0x134(%rsp)
movups %xmm0,0x144(%rsp)
movups %xmm0,0x154(%rsp)
movups %xmm0,0x164(%rsp)
movups %xmm0,0x174(%rsp)
movups %xmm0,0x184(%rsp)
movups %xmm0,0x194(%rsp)
movups %xmm0,0x1a4(%rsp)
movups %xmm0,0x1b4(%rsp)
movups %xmm0,0x1c4(%rsp)
movups %xmm0,0x1d4(%rsp)
movups %xmm0,0x1e4(%rsp)
movups %xmm0,0x1f4(%rsp)
movups %xmm0,0x204(%rsp)
movups %xmm0,0x214(%rsp)
movups %xmm0,0x224(%rsp)
movups %xmm0,0x234(%rsp)
movups %xmm0,0x244(%rsp)
movups %xmm0,0x254(%rsp)
movups %xmm0,0x264(%rsp)
movups %xmm0,0x274(%rsp)
movups %xmm0,0x284(%rsp)
movups %xmm0,0x294(%rsp)
movups %xmm0,0x2a4(%rsp)
movups %xmm0,0x2b4(%rsp)
movups %xmm0,0x2c4(%rsp)
movups %xmm0,0x2d4(%rsp)
movups %xmm0,0x2e4(%rsp)
movups %xmm0,0x2f4(%rsp)
movups %xmm0,0x304(%rsp)
movups %xmm0,0x314(%rsp)
movups %xmm0,0x324(%rsp)
movabs $0x100000001,%rax
mov    %rax,0x14(%rsp)
mov    $0x4,%r15d
mov    $0x2,%edi
mov    $0x1,%eax
lea    0x10(%rsp),%r10
xor    %r11d,%r11d
mov    $0xc9,%esi
xorps  %xmm0,%xmm0
mov    $0x1,%r14d
jmp    1310 <main+0x200>
nopw   0x0(%rax,%rax,1)
movslq %r14d,%r14
mov    %edi,0x340(%rsp,%r14,4)
add    $0x1,%r14d
add    $0x1,%rdi
cmp    $0xc9,%rdi
je     1486 <main+0x376>
add    $0x2,%r15
mov    0x10(%rsp,%rdi,4),%eax
add    $0x1,%r11
add    $0x8,%r10
test   %eax,%eax
je     12ef <main+0x1df>
cmp    $0x64,%rdi
ja     12e0 <main+0x1d0>
mov    $0xfffffffffffffffc,%rcx
sub    %r11,%rcx
sub    %r11,%rcx
lea    (%rdi,%r15,1),%rax
cmp    $0xca,%rax
cmovb  %rsi,%rax
add    %rcx,%rax
xor    %r12d,%r12d
sub    %rdi,%rax
setne  %r12b
sub    %r12,%rax
add    $0x1,%r12
mov    %rax,%rcx
or     %rdi,%rcx
shr    $0x20,%rcx
je     135c <main+0x24c>
xor    %edx,%edx
div    %rdi
jmp    1360 <main+0x250>
xor    %edx,%edx
div    %edi
add    %rax,%r12
mov    %r15,%rax
cmp    $0x8,%r12
jb     1460 <main+0x350>
mov    %r15,%rax
cmp    $0x1,%rdi
jne    1460 <main+0x350>
mov    %r12,%rax
and    $0xfffffffffffffff8,%rax
lea    -0x8(%rax),%rcx
mov    %rcx,%rdx
shr    $0x3,%rdx
add    $0x1,%rdx
mov    %edx,%r13d
and    $0x3,%r13d
cmp    $0x18,%rcx
mov    %r10,0x8(%rsp)
jae    13a9 <main+0x299>
xor    %ebx,%ebx
jmp    140e <main+0x2fe>
and    $0xfffffffffffffffc,%rdx
mov    %rdi,%rsi
shl    $0x6,%rsi
mov    %rdi,%rbp
shl    $0x7,%rbp
mov    %rdi,%rcx
shl    $0x5,%rcx
lea    (%rcx,%rcx,2),%r8
xor    %ebx,%ebx
xor    %r9d,%r9d
nopl   0x0(%rax,%rax,1)
movups %xmm0,0x10(%r10)
movups %xmm0,0x20(%r10)
movups %xmm0,0x10(%r10,%rcx,1)
movups %xmm0,0x20(%r10,%rcx,1)
movups %xmm0,0x10(%r10,%rsi,1)
movups %xmm0,0x20(%r10,%rsi,1)
movups %xmm0,0x10(%r10,%r8,1)
movups %xmm0,0x20(%r10,%r8,1)
add    $0x20,%rbx
add    $0x4,%r9
add    %rbp,%r10
cmp    %rdx,%r9
jne    13d0 <main+0x2c0>
test   %r13,%r13
je     1443 <main+0x333>
imul   %rdi,%rbx
add    %r15,%rbx
lea    0x10(%rsp),%rcx
lea    (%rcx,%rbx,4),%rcx
add    $0x10,%rcx
mov    %rdi,%rdx
shl    $0x5,%rdx
xor    %esi,%esi
movups %xmm0,-0x10(%rcx)
movups %xmm0,(%rcx)
add    $0x1,%rsi
add    %rdx,%rcx
cmp    %r13,%rsi
jne    1430 <main+0x320>
cmp    %rax,%r12
mov    $0xc9,%esi
mov    0x8(%rsp),%r10
je     1473 <main+0x363>
imul   %rdi,%rax
add    %r15,%rax
nopl   0x0(%rax)
movl   $0x0,0x10(%rsp,%rax,4)
add    %rdi,%rax
cmp    $0xc9,%rax
jb     1460 <main+0x350>
cmp    $0x64,%rdi
ja     12e0 <main+0x1d0>
add    $0x1,%rdi
jmp    1300 <main+0x1f0>
lea    -0x1(%r14),%ebx
lea    0xb7f(%rip),%rdi
mov    %ebx,%esi
call   1030 <printf@plt>
mov    $0x1,%ebp
cmp    $0x3,%r14d
jl     14d8 <main+0x3c8>
mov    %ebx,%ebp
mov    $0x1,%ebx
lea    0xb63(%rip),%r14
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    0x340(%rsp,%rbx,4),%esi
mov    %r14,%rdi
call   1030 <printf@plt>
add    $0x1,%rbx
cmp    %rbx,%rbp
jne    14c0 <main+0x3b0>
mov    0x340(%rsp,%rbp,4),%esi
lea    0xb32(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x4d8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [4 x i8] c"%d\0A\00"
@.str.1 = [4 x i8] c"%d \00"
@.str.2 = [3 x i8] c"%d\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i8*
%7 = alloca i64
%8 = alloca [100 x i32]
store i32 0, i32* %1
store i32 200, i32* %2
store i32 1, i32* %5
%9 = load i32, i32* %2
%10 = add nsw i32 %9, 1
%11 = zext i32 %10 to i64
%12 = call i8* @llvm.stacksave()
store i8* %12, i8** %6
%13 = alloca i32, i64 %11
store i64 %11, i64* %7
store i32 1, i32* %3
br label %14
14: ; preds = %22, %0
%15 = load i32, i32* %3
%16 = load i32, i32* %2
%17 = icmp sle i32 %15, %16
br i1 %17, label %18, label %25
18: ; preds = %14
%19 = load i32, i32* %3
%20 = sext i32 %19 to i64
%21 = getelementptr inbounds i32, i32* %13, i64 %20
store i32 1, i32* %21
br label %22
22: ; preds = %18
%23 = load i32, i32* %3
%24 = add nsw i32 %23, 1
store i32 %24, i32* %3
br label %14
25: ; preds = %14
%26 = getelementptr inbounds i32, i32* %13, i64 1
store i32 1, i32* %26
%27 = getelementptr inbounds i32, i32* %13, i64 2
store i32 1, i32* %27
store i32 2, i32* %3
br label %28
28: ; preds = %65, %25
%29 = load i32, i32* %3
%30 = load i32, i32* %2
%31 = icmp sle i32 %29, %30
br i1 %31, label %32, label %68
32: ; preds = %28
%33 = load i32, i32* %3
%34 = sext i32 %33 to i64
%35 = getelementptr inbounds i32, i32* %13, i64 %34
%36 = load i32, i32* %35
%37 = icmp ne i32 %36, 0
br i1 %37, label %38, label %64
38: ; preds = %32
%39 = load i32, i32* %3
%40 = mul nsw i32 2, %39
store i32 %40, i32* %4
br label %41
41: ; preds = %49, %38
%42 = load i32, i32* %4
%43 = load i32, i32* %2
%44 = icmp sle i32 %42, %43
br i1 %44, label %45, label %53
45: ; preds = %41
%46 = load i32, i32* %4
%47 = sext i32 %46 to i64
%48 = getelementptr inbounds i32, i32* %13, i64 %47
store i32 0, i32* %48
br label %49
49: ; preds = %45
%50 = load i32, i32* %3
%51 = load i32, i32* %4
%52 = add nsw i32 %51, %50
store i32 %52, i32* %4
br label %41
53: ; preds = %41
%54 = load i32, i32* %3
%55 = icmp sgt i32 %54, 100
br i1 %55, label %56, label %63
56: ; preds = %53
%57 = load i32, i32* %3
%58 = load i32, i32* %5
%59 = sext i32 %58 to i64
%60 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %59
store i32 %57, i32* %60
%61 = load i32, i32* %5
%62 = add nsw i32 %61, 1
store i32 %62, i32* %5
br label %63
63: ; preds = %56, %53
br label %64
64: ; preds = %63, %32
br label %65
65: ; preds = %64
%66 = load i32, i32* %3
%67 = add nsw i32 %66, 1
store i32 %67, i32* %3
br label %28
68: ; preds = %28
%69 = load i32, i32* %5
%70 = sub nsw i32 %69, 1
%71 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %70)
store i32 1, i32* %3
br label %72
72: ; preds = %83, %68
%73 = load i32, i32* %3
%74 = load i32, i32* %5
%75 = sub nsw i32 %74, 1
%76 = icmp slt i32 %73, %75
br i1 %76, label %77, label %86
77: ; preds = %72
%78 = load i32, i32* %3
%79 = sext i32 %78 to i64
%80 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %79
%81 = load i32, i32* %80
%82 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i32 %81)
br label %83
83: ; preds = %77
%84 = load i32, i32* %3
%85 = add nsw i32 %84, 1
store i32 %85, i32* %3
br label %72
86: ; preds = %72
%87 = load i32, i32* %3
%88 = sext i32 %87 to i64
%89 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %88
%90 = load i32, i32* %89
%91 = call i32 @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i32 %90)
store i32 0, i32* %1
%92 = load i8*, i8** %6
%93 = load i32, i32* %1
ret i32 %93
}

LLVM IR (-O2):
@.str = [4 x i8] c"%d\0A\00"
@.str.1 = [4 x i8] c"%d \00"
@.str.2 = [3 x i8] c"%d\00"
define i32 @main() {
%1 = alloca [100 x i32]
%2 = alloca [201 x i32]
%3 = bitcast [100 x i32]* %1 to i8*
%4 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 1
%5 = bitcast i32* %4 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %5
%6 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 5
%7 = bitcast i32* %6 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %7
%8 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 9
%9 = bitcast i32* %8 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %9
%10 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 13
%11 = bitcast i32* %10 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %11
%12 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 17
%13 = bitcast i32* %12 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %13
%14 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 21
%15 = bitcast i32* %14 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %15
%16 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 25
%17 = bitcast i32* %16 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %17
%18 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 29
%19 = bitcast i32* %18 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %19
%20 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 33
%21 = bitcast i32* %20 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %21
%22 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 37
%23 = bitcast i32* %22 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %23
%24 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 41
%25 = bitcast i32* %24 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %25
%26 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 45
%27 = bitcast i32* %26 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %27
%28 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 49
%29 = bitcast i32* %28 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %29
%30 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 53
%31 = bitcast i32* %30 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %31
%32 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 57
%33 = bitcast i32* %32 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %33
%34 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 61
%35 = bitcast i32* %34 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %35
%36 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 65
%37 = bitcast i32* %36 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %37
%38 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 69
%39 = bitcast i32* %38 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %39
%40 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 73
%41 = bitcast i32* %40 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %41
%42 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 77
%43 = bitcast i32* %42 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %43
%44 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 81
%45 = bitcast i32* %44 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %45
%46 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 85
%47 = bitcast i32* %46 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %47
%48 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 89
%49 = bitcast i32* %48 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %49
%50 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 93
%51 = bitcast i32* %50 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %51
%52 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 97
%53 = bitcast i32* %52 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %53
%54 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 101
%55 = bitcast i32* %54 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %55
%56 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 105
%57 = bitcast i32* %56 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %57
%58 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 109
%59 = bitcast i32* %58 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %59
%60 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 113
%61 = bitcast i32* %60 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %61
%62 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 117
%63 = bitcast i32* %62 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %63
%64 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 121
%65 = bitcast i32* %64 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %65
%66 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 125
%67 = bitcast i32* %66 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %67
%68 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 129
%69 = bitcast i32* %68 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %69
%70 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 133
%71 = bitcast i32* %70 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %71
%72 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 137
%73 = bitcast i32* %72 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %73
%74 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 141
%75 = bitcast i32* %74 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %75
%76 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 145
%77 = bitcast i32* %76 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %77
%78 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 149
%79 = bitcast i32* %78 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %79
%80 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 153
%81 = bitcast i32* %80 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %81
%82 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 157
%83 = bitcast i32* %82 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %83
%84 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 161
%85 = bitcast i32* %84 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %85
%86 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 165
%87 = bitcast i32* %86 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %87
%88 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 169
%89 = bitcast i32* %88 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %89
%90 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 173
%91 = bitcast i32* %90 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %91
%92 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 177
%93 = bitcast i32* %92 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %93
%94 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 181
%95 = bitcast i32* %94 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %95
%96 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 185
%97 = bitcast i32* %96 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %97
%98 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 189
%99 = bitcast i32* %98 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %99
%100 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 193
%101 = bitcast i32* %100 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %101
%102 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 197
%103 = bitcast i32* %102 to <4 x i32>*
store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32>* %103
%104 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 1
store i32 1, i32* %104
%105 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 2
store i32 1, i32* %105
br label %106
106: ; preds = %212, %0
%107 = phi i64 [ %218, %212 ], [ 0, %0 ]
%108 = phi i32 [ %217, %212 ], [ 1, %0 ]
%109 = phi i64 [ %213, %212 ], [ 2, %0 ]
%110 = phi i64 [ %215, %212 ], [ 4, %0 ]
%111 = phi i32 [ %214, %212 ], [ 1, %0 ]
%112 = mul i64 %107, -2
%113 = add i64 %112, -4
%114 = icmp eq i32 %108, 0
br i1 %114, label %208, label %115
115: ; preds = %106
%116 = icmp ult i64 %109, 101
br i1 %116, label %117, label %203
117: ; preds = %115
%118 = add i64 %109, %110
%119 = call i64 @llvm.umax.i64(i64 %118, i64 201)
%120 = add i64 %119, %113
%121 = sub i64 %120, %109
%122 = icmp ne i64 %121, 0
%123 = sext i1 %122 to i64
%124 = select i1 %122, i64 2, i64 1
%125 = add i64 %121, %123
%126 = udiv i64 %125, %109
%127 = add i64 %124, %126
%128 = icmp ugt i64 %127, 7
%129 = icmp eq i64 %109, 1
%130 = select i1 %128, i1 %129, i1 false
br i1 %130, label %131, label %192
131: ; preds = %117
%132 = and i64 %127, -8
%133 = mul i64 %132, %109
%134 = add i64 %110, %133
%135 = add i64 %132, -8
%136 = lshr exact i64 %135, 3
%137 = add nuw nsw i64 %136, 1
%138 = and i64 %137, 3
%139 = icmp ult i64 %135, 24
br i1 %139, label %175, label %140
140: ; preds = %131
%141 = and i64 %137, 4611686018427387900
br label %142
142: ; preds = %142, %140
%143 = phi i64 [ 0, %140 ], [ %172, %142 ]
%144 = phi i64 [ 0, %140 ], [ %173, %142 ]
%145 = mul i64 %143, %109
%146 = add i64 %110, %145
%147 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 %146
%148 = bitcast i32* %147 to <4 x i32>*
store <4 x i32> zeroinitializer, <4 x i32>* %148
%149 = getelementptr inbounds i32, i32* %147, i64 4
%150 = bitcast i32* %149 to <4 x i32>*
store <4 x i32> zeroinitializer, <4 x i32>* %150
%151 = or i64 %143, 8
%152 = mul i64 %151, %109
%153 = add i64 %110, %152
%154 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 %153
%155 = bitcast i32* %154 to <4 x i32>*
store <4 x i32> zeroinitializer, <4 x i32>* %155
%156 = getelementptr inbounds i32, i32* %154, i64 4
%157 = bitcast i32* %156 to <4 x i32>*
store <4 x i32> zeroinitializer, <4 x i32>* %157
%158 = or i64 %143, 16
%159 = mul i64 %158, %109
%160 = add i64 %110, %159
%161 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 %160
%162 = bitcast i32* %161 to <4 x i32>*
store <4 x i32> zeroinitializer, <4 x i32>* %162
%163 = getelementptr inbounds i32, i32* %161, i64 4
%164 = bitcast i32* %163 to <4 x i32>*
store <4 x i32> zeroinitializer, <4 x i32>* %164
%165 = or i64 %143, 24
%166 = mul i64 %165, %109
%167 = add i64 %110, %166
%168 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 %167
%169 = bitcast i32* %168 to <4 x i32>*
store <4 x i32> zeroinitializer, <4 x i32>* %169
%170 = getelementptr inbounds i32, i32* %168, i64 4
%171 = bitcast i32* %170 to <4 x i32>*
store <4 x i32> zeroinitializer, <4 x i32>* %171
%172 = add nuw i64 %143, 32
%173 = add i64 %144, 4
%174 = icmp eq i64 %173, %141
br i1 %174, label %175, label %142
175: ; preds = %142, %131
%176 = phi i64 [ 0, %131 ], [ %172, %142 ]
%177 = icmp eq i64 %138, 0
br i1 %177, label %190, label %178
178: ; preds = %175, %178
%179 = phi i64 [ %187, %178 ], [ %176, %175 ]
%180 = phi i64 [ %188, %178 ], [ 0, %175 ]
%181 = mul i64 %179, %109
%182 = add i64 %110, %181
%183 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 %182
%184 = bitcast i32* %183 to <4 x i32>*
store <4 x i32> zeroinitializer, <4 x i32>* %184
%185 = getelementptr inbounds i32, i32* %183, i64 4
%186 = bitcast i32* %185 to <4 x i32>*
store <4 x i32> zeroinitializer, <4 x i32>* %186
%187 = add nuw i64 %179, 8
%188 = add i64 %180, 1
%189 = icmp eq i64 %188, %138
br i1 %189, label %190, label %178
190: ; preds = %178, %175
%191 = icmp eq i64 %127, %132
br i1 %191, label %199, label %192
192: ; preds = %117, %190
%193 = phi i64 [ %110, %117 ], [ %134, %190 ]
br label %194
194: ; preds = %192, %194
%195 = phi i64 [ %197, %194 ], [ %193, %192 ]
%196 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 %195
store i32 0, i32* %196
%197 = add nuw nsw i64 %195, %109
%198 = icmp ult i64 %197, 201
br i1 %198, label %194, label %199
199: ; preds = %194, %190
%200 = icmp ugt i64 %109, 100
br i1 %200, label %203, label %201
201: ; preds = %199
%202 = add nuw nsw i64 %109, 1
br label %212
203: ; preds = %115, %199
%204 = sext i32 %111 to i64
%205 = getelementptr inbounds [100 x i32], [100 x i32]* %1, i64 0, i64 %204
%206 = trunc i64 %109 to i32
store i32 %206, i32* %205
%207 = add nsw i32 %111, 1
br label %208
208: ; preds = %106, %203
%209 = phi i32 [ %207, %203 ], [ %111, %106 ]
%210 = add nuw nsw i64 %109, 1
%211 = icmp eq i64 %210, 201
br i1 %211, label %219, label %212
212: ; preds = %201, %208
%213 = phi i64 [ %202, %201 ], [ %210, %208 ]
%214 = phi i32 [ %111, %201 ], [ %209, %208 ]
%215 = add nuw nsw i64 %110, 2
%216 = getelementptr inbounds [201 x i32], [201 x i32]* %2, i64 0, i64 %213
%217 = load i32, i32* %216
%218 = add i64 %107, 1
br label %106
219: ; preds = %208
%220 = add nsw i32 %209, -1
%221 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %220)
%222 = icmp sgt i32 %209, 2
br i1 %222, label %223, label %234
223: ; preds = %219
%224 = zext i32 %220 to i64
br label %225
225: ; preds = %223, %225
%226 = phi i64 [ 1, %223 ], [ %230, %225 ]
%227 = getelementptr inbounds [100 x i32], [100 x i32]* %1, i64 0, i64 %226
%228 = load i32, i32* %227
%229 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i32 %228)
%230 = add nuw nsw i64 %226, 1
%231 = icmp eq i64 %230, %224
br i1 %231, label %232, label %225
232: ; preds = %225
%233 = zext i32 %220 to i64
br label %234
234: ; preds = %219, %232
%235 = phi i64 [ %233, %232 ], [ 1, %219 ]
%236 = getelementptr inbounds [100 x i32], [100 x i32]* %1, i64 0, i64 %235
%237 = load i32, i32* %236
%238 = tail call i32 @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0), i32 %237)
ret i32 0
}