#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 /*<<< orphan*/ scanf(char *, int *, int *);
int main() {
  int X, Y, soma = 0, i;
  scanf(" %d %d", &X, &Y);
  if (X > Y) {
    for (i = Y + 1; i <= X - 1; i++) {
      if (i % 2 != 0)
        soma += i;
    }
  } else if (Y > X) {
    for (i = X + 1; i <= Y - 1; i++) {
      if (i % 2 != 0)
        soma += i;
    }
  }
  printf("%d\n", soma);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0x10(%rbp)
lea    0xec3(%rip),%rdi
lea    -0x8(%rbp),%rsi
lea    -0xc(%rbp),%rdx
call   1040 <scanf@plt>
mov    -0x8(%rbp),%eax
cmp    -0xc(%rbp),%eax
jle    11a5 <main+0x85>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     11a0 <main+0x80>
mov    -0x14(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
je     118d <main+0x6d>
mov    -0x14(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x10(%rbp)
jmp    1192 <main+0x72>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    115f <main+0x3f>
jmp    1205 <main+0xe5>
mov    -0xc(%rbp),%eax
cmp    -0x8(%rbp),%eax
jle    1200 <main+0xe0>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     11fb <main+0xdb>
mov    -0x14(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
je     11e8 <main+0xc8>
mov    -0x14(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x10(%rbp)
jmp    11ed <main+0xcd>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    11ba <main+0x9a>
jmp    1200 <main+0xe0>
jmp    1205 <main+0xe5>
mov    -0x10(%rbp),%esi
lea    0xdf8(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rax
lea    0xf28(%rip),%rdi
lea    0x4(%rsp),%rsi
mov    %rsp,%rdx
call   1040 <scanf@plt>
mov    0x4(%rsp),%eax
mov    (%rsp),%ecx
cmp    %ecx,%eax
jle    12e7 <main+0x1c7>
lea    -0x1(%rax),%edx
xor    %esi,%esi
cmp    %edx,%ecx
jge    1482 <main+0x362>
mov    %ecx,%edx
not    %edx
add    %eax,%edx
xor    %esi,%esi
cmp    $0x8,%edx
jb     12c4 <main+0x1a4>
mov    %edx,%r8d
and    $0xfffffff8,%r8d
movd   %ecx,%xmm0
pshufd $0x0,%xmm0,%xmm5
paddd  0xe86(%rip),%xmm5
lea    -0x8(%r8),%esi
mov    %esi,%edi
shr    $0x3,%edi
add    $0x1,%edi
test   %esi,%esi
je     1492 <main+0x372>
mov    %edi,%esi
and    $0xfffffffe,%esi
pxor   %xmm1,%xmm1
pcmpeqd %xmm8,%xmm8
movdqa 0xe6b(%rip),%xmm9
movdqa 0xe72(%rip),%xmm10
movdqa 0xe7a(%rip),%xmm6
movdqa 0xe82(%rip),%xmm7
pxor   %xmm2,%xmm2
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movdqa %xmm5,%xmm4
psubd  %xmm8,%xmm4
movdqa %xmm5,%xmm3
paddd  %xmm9,%xmm3
movdqa %xmm4,%xmm0
pslld  $0x1f,%xmm0
psrad  $0x1f,%xmm0
pand   %xmm4,%xmm0
paddd  %xmm1,%xmm0
movdqa %xmm3,%xmm4
pslld  $0x1f,%xmm4
psrad  $0x1f,%xmm4
pand   %xmm3,%xmm4
paddd  %xmm2,%xmm4
movdqa %xmm5,%xmm2
paddd  %xmm10,%xmm2
movdqa %xmm5,%xmm3
paddd  %xmm6,%xmm3
movdqa %xmm2,%xmm1
pslld  $0x1f,%xmm1
psrad  $0x1f,%xmm1
pand   %xmm2,%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm3,%xmm2
pslld  $0x1f,%xmm2
psrad  $0x1f,%xmm2
pand   %xmm3,%xmm2
paddd  %xmm4,%xmm2
paddd  %xmm7,%xmm5
add    $0xfffffffe,%esi
jne    11d0 <main+0xb0>
test   $0x1,%dil
je     129e <main+0x17e>
pcmpeqd %xmm0,%xmm0
movdqa %xmm5,%xmm3
psubd  %xmm0,%xmm3
paddd  0xd9e(%rip),%xmm5
movdqa %xmm3,%xmm0
pslld  $0x1f,%xmm0
psrad  $0x1f,%xmm0
pand   %xmm3,%xmm0
paddd  %xmm0,%xmm1
movdqa %xmm5,%xmm0
pslld  $0x1f,%xmm0
psrad  $0x1f,%xmm0
pand   %xmm5,%xmm0
paddd  %xmm0,%xmm2
paddd  %xmm2,%xmm1
pshufd $0xee,%xmm1,%xmm0
paddd  %xmm1,%xmm0
pshufd $0x55,%xmm0,%xmm1
paddd  %xmm0,%xmm1
movd   %xmm1,%esi
cmp    %r8d,%edx
je     1482 <main+0x362>
add    %r8d,%ecx
add    $0x1,%ecx
nopw   0x0(%rax,%rax,1)
mov    %ecx,%edx
and    $0x1,%edx
neg    %edx
and    %ecx,%edx
add    %edx,%esi
add    $0x1,%ecx
cmp    %ecx,%eax
jne    12d0 <main+0x1b0>
jmp    1482 <main+0x362>
xor    %esi,%esi
cmp    %eax,%ecx
jle    1482 <main+0x362>
lea    -0x1(%rcx),%edx
cmp    %edx,%eax
jge    1482 <main+0x362>
mov    %eax,%edx
not    %edx
add    %ecx,%edx
xor    %esi,%esi
cmp    $0x8,%edx
jb     1460 <main+0x340>
mov    %edx,%r8d
and    $0xfffffff8,%r8d
movd   %eax,%xmm0
pshufd $0x0,%xmm0,%xmm5
paddd  0xcdb(%rip),%xmm5
lea    -0x8(%r8),%esi
mov    %esi,%edi
shr    $0x3,%edi
add    $0x1,%edi
test   %esi,%esi
je     14a9 <main+0x389>
mov    %edi,%esi
and    $0xfffffffe,%esi
pxor   %xmm1,%xmm1
pcmpeqd %xmm8,%xmm8
movdqa 0xcc0(%rip),%xmm9
movdqa 0xcc7(%rip),%xmm10
movdqa 0xccf(%rip),%xmm6
movdqa 0xcd7(%rip),%xmm7
pxor   %xmm2,%xmm2
nopl   (%rax)
movdqa %xmm5,%xmm4
psubd  %xmm8,%xmm4
movdqa %xmm5,%xmm3
paddd  %xmm9,%xmm3
movdqa %xmm4,%xmm0
pslld  $0x1f,%xmm0
psrad  $0x1f,%xmm0
pand   %xmm4,%xmm0
paddd  %xmm1,%xmm0
movdqa %xmm3,%xmm4
pslld  $0x1f,%xmm4
psrad  $0x1f,%xmm4
pand   %xmm3,%xmm4
paddd  %xmm2,%xmm4
movdqa %xmm5,%xmm2
paddd  %xmm10,%xmm2
movdqa %xmm5,%xmm3
paddd  %xmm6,%xmm3
movdqa %xmm2,%xmm1
pslld  $0x1f,%xmm1
psrad  $0x1f,%xmm1
pand   %xmm2,%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm3,%xmm2
pslld  $0x1f,%xmm2
psrad  $0x1f,%xmm2
pand   %xmm3,%xmm2
paddd  %xmm4,%xmm2
paddd  %xmm7,%xmm5
add    $0xfffffffe,%esi
jne    1370 <main+0x250>
test   $0x1,%dil
je     143e <main+0x31e>
pcmpeqd %xmm0,%xmm0
movdqa %xmm5,%xmm3
psubd  %xmm0,%xmm3
paddd  0xbfe(%rip),%xmm5
movdqa %xmm3,%xmm0
pslld  $0x1f,%xmm0
psrad  $0x1f,%xmm0
pand   %xmm3,%xmm0
paddd  %xmm0,%xmm1
movdqa %xmm5,%xmm0
pslld  $0x1f,%xmm0
psrad  $0x1f,%xmm0
pand   %xmm5,%xmm0
paddd  %xmm0,%xmm2
paddd  %xmm2,%xmm1
pshufd $0xee,%xmm1,%xmm0
paddd  %xmm1,%xmm0
pshufd $0x55,%xmm0,%xmm1
paddd  %xmm0,%xmm1
movd   %xmm1,%esi
cmp    %r8d,%edx
je     1482 <main+0x362>
add    %r8d,%eax
add    $0x1,%eax
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    %eax,%edx
and    $0x1,%edx
neg    %edx
and    %eax,%edx
add    %edx,%esi
add    $0x1,%eax
cmp    %eax,%ecx
jne    1470 <main+0x350>
lea    0xbce(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
pop    %rcx
ret
pxor   %xmm1,%xmm1
pxor   %xmm2,%xmm2
test   $0x1,%dil
jne    125e <main+0x13e>
jmp    129e <main+0x17e>
pxor   %xmm1,%xmm1
pxor   %xmm2,%xmm2
test   $0x1,%dil
jne    13fe <main+0x2de>
jmp    143e <main+0x31e>

LLVM IR (-O0):
@.str = [7 x i8] c" %d %d\00"
@.str.1 = [4 x i8] c"%d\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
store i32 0, i32* %1
store i32 0, i32* %4
%6 = call i32 @scanf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i32* %2, i32* %3)
%7 = load i32, i32* %2
%8 = load i32, i32* %3
%9 = icmp sgt i32 %7, %8
br i1 %9, label %10, label %31
10: ; preds = %0
%11 = load i32, i32* %3
%12 = add nsw i32 %11, 1
store i32 %12, i32* %5
br label %13
13: ; preds = %27, %10
%14 = load i32, i32* %5
%15 = load i32, i32* %2
%16 = sub nsw i32 %15, 1
%17 = icmp sle i32 %14, %16
br i1 %17, label %18, label %30
18: ; preds = %13
%19 = load i32, i32* %5
%20 = srem i32 %19, 2
%21 = icmp ne i32 %20, 0
br i1 %21, label %22, label %26
22: ; preds = %18
%23 = load i32, i32* %5
%24 = load i32, i32* %4
%25 = add nsw i32 %24, %23
store i32 %25, i32* %4
br label %26
26: ; preds = %22, %18
br label %27
27: ; preds = %26
%28 = load i32, i32* %5
%29 = add nsw i32 %28, 1
store i32 %29, i32* %5
br label %13
30: ; preds = %13
br label %57
31: ; preds = %0
%32 = load i32, i32* %3
%33 = load i32, i32* %2
%34 = icmp sgt i32 %32, %33
br i1 %34, label %35, label %56
35: ; preds = %31
%36 = load i32, i32* %2
%37 = add nsw i32 %36, 1
store i32 %37, i32* %5
br label %38
38: ; preds = %52, %35
%39 = load i32, i32* %5
%40 = load i32, i32* %3
%41 = sub nsw i32 %40, 1
%42 = icmp sle i32 %39, %41
br i1 %42, label %43, label %55
43: ; preds = %38
%44 = load i32, i32* %5
%45 = srem i32 %44, 2
%46 = icmp ne i32 %45, 0
br i1 %46, label %47, label %51
47: ; preds = %43
%48 = load i32, i32* %5
%49 = load i32, i32* %4
%50 = add nsw i32 %49, %48
store i32 %50, i32* %4
br label %51
51: ; preds = %47, %43
br label %52
52: ; preds = %51
%53 = load i32, i32* %5
%54 = add nsw i32 %53, 1
store i32 %54, i32* %5
br label %38
55: ; preds = %38
br label %56
56: ; preds = %55, %31
br label %57
57: ; preds = %56, %30
%58 = load i32, i32* %4
%59 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i32 %58)
ret i32 0
}

LLVM IR (-O2):
@.str = [7 x i8] c" %d %d\00"
@.str.1 = [4 x i8] c"%d\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = bitcast i32* %1 to i8*
%4 = bitcast i32* %2 to i8*
%5 = call i32 @scanf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), i32* %1, i32* %2)
%6 = load i32, i32* %1
%7 = load i32, i32* %2
%8 = icmp sgt i32 %6, %7
br i1 %8, label %9, label %93
9: ; preds = %0
%10 = add nsw i32 %6, -1
%11 = icmp slt i32 %7, %10
br i1 %11, label %12, label %179
12: ; preds = %9
%13 = xor i32 %7, -1
%14 = add i32 %6, %13
%15 = icmp ult i32 %14, 8
br i1 %15, label %81, label %16
16: ; preds = %12
%17 = and i32 %14, -8
%18 = add i32 %7, %17
%19 = insertelement <4 x i32> poison, i32 %7, i64 0
%20 = shufflevector <4 x i32> %19, <4 x i32> poison, <4 x i32> zeroinitializer
%21 = add <4 x i32> %20, <i32 0, i32 1, i32 2, i32 3>
%22 = add i32 %17, -8
%23 = lshr exact i32 %22, 3
%24 = add nuw nsw i32 %23, 1
%25 = and i32 %24, 1
%26 = icmp eq i32 %22, 0
br i1 %26, label %57, label %27
27: ; preds = %16
%28 = and i32 %24, 1073741822
br label %29
29: ; preds = %29, %27
%30 = phi <4 x i32> [ %21, %27 ], [ %54, %29 ]
%31 = phi <4 x i32> [ zeroinitializer, %27 ], [ %52, %29 ]
%32 = phi <4 x i32> [ zeroinitializer, %27 ], [ %53, %29 ]
%33 = phi i32 [ 0, %27 ], [ %55, %29 ]
%34 = add nsw <4 x i32> %30, <i32 1, i32 1, i32 1, i32 1>
%35 = add <4 x i32> %30, <i32 5, i32 5, i32 5, i32 5>
%36 = and <4 x i32> %34, <i32 1, i32 1, i32 1, i32 1>
%37 = and <4 x i32> %35, <i32 1, i32 1, i32 1, i32 1>
%38 = icmp eq <4 x i32> %36, zeroinitializer
%39 = icmp eq <4 x i32> %37, zeroinitializer
%40 = select <4 x i1> %38, <4 x i32> zeroinitializer, <4 x i32> %34
%41 = select <4 x i1> %39, <4 x i32> zeroinitializer, <4 x i32> %35
%42 = add <4 x i32> %40, %31
%43 = add <4 x i32> %41, %32
%44 = add <4 x i32> %30, <i32 9, i32 9, i32 9, i32 9>
%45 = add <4 x i32> %30, <i32 13, i32 13, i32 13, i32 13>
%46 = and <4 x i32> %44, <i32 1, i32 1, i32 1, i32 1>
%47 = and <4 x i32> %45, <i32 1, i32 1, i32 1, i32 1>
%48 = icmp eq <4 x i32> %46, zeroinitializer
%49 = icmp eq <4 x i32> %47, zeroinitializer
%50 = select <4 x i1> %48, <4 x i32> zeroinitializer, <4 x i32> %44
%51 = select <4 x i1> %49, <4 x i32> zeroinitializer, <4 x i32> %45
%52 = add <4 x i32> %50, %42
%53 = add <4 x i32> %51, %43
%54 = add <4 x i32> %30, <i32 16, i32 16, i32 16, i32 16>
%55 = add i32 %33, 2
%56 = icmp eq i32 %55, %28
br i1 %56, label %57, label %29
57: ; preds = %29, %16
%58 = phi <4 x i32> [ undef, %16 ], [ %52, %29 ]
%59 = phi <4 x i32> [ undef, %16 ], [ %53, %29 ]
%60 = phi <4 x i32> [ %21, %16 ], [ %54, %29 ]
%61 = phi <4 x i32> [ zeroinitializer, %16 ], [ %52, %29 ]
%62 = phi <4 x i32> [ zeroinitializer, %16 ], [ %53, %29 ]
%63 = icmp eq i32 %25, 0
br i1 %63, label %75, label %64
64: ; preds = %57
%65 = add nsw <4 x i32> %60, <i32 1, i32 1, i32 1, i32 1>
%66 = add <4 x i32> %60, <i32 5, i32 5, i32 5, i32 5>
%67 = and <4 x i32> %65, <i32 1, i32 1, i32 1, i32 1>
%68 = and <4 x i32> %66, <i32 1, i32 1, i32 1, i32 1>
%69 = icmp eq <4 x i32> %67, zeroinitializer
%70 = icmp eq <4 x i32> %68, zeroinitializer
%71 = select <4 x i1> %69, <4 x i32> zeroinitializer, <4 x i32> %65
%72 = select <4 x i1> %70, <4 x i32> zeroinitializer, <4 x i32> %66
%73 = add <4 x i32> %71, %61
%74 = add <4 x i32> %72, %62
br label %75
75: ; preds = %57, %64
%76 = phi <4 x i32> [ %58, %57 ], [ %73, %64 ]
%77 = phi <4 x i32> [ %59, %57 ], [ %74, %64 ]
%78 = add <4 x i32> %77, %76
%79 = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> %78)
%80 = icmp eq i32 %14, %17
br i1 %80, label %179, label %81
81: ; preds = %12, %75
%82 = phi i32 [ %7, %12 ], [ %18, %75 ]
%83 = phi i32 [ 0, %12 ], [ %79, %75 ]
br label %84
84: ; preds = %81, %84
%85 = phi i32 [ %87, %84 ], [ %82, %81 ]
%86 = phi i32 [ %91, %84 ], [ %83, %81 ]
%87 = add nsw i32 %85, 1
%88 = and i32 %87, 1
%89 = icmp eq i32 %88, 0
%90 = select i1 %89, i32 0, i32 %87
%91 = add nsw i32 %90, %86
%92 = icmp eq i32 %87, %10
br i1 %92, label %179, label %84
93: ; preds = %0
%94 = icmp sgt i32 %7, %6
br i1 %94, label %95, label %179
95: ; preds = %93
%96 = add nsw i32 %7, -1
%97 = icmp slt i32 %6, %96
br i1 %97, label %98, label %179
98: ; preds = %95
%99 = xor i32 %6, -1
%100 = add i32 %7, %99
%101 = icmp ult i32 %100, 8
br i1 %101, label %167, label %102
102: ; preds = %98
%103 = and i32 %100, -8
%104 = add i32 %6, %103
%105 = insertelement <4 x i32> poison, i32 %6, i64 0
%106 = shufflevector <4 x i32> %105, <4 x i32> poison, <4 x i32> zeroinitializer
%107 = add <4 x i32> %106, <i32 0, i32 1, i32 2, i32 3>
%108 = add i32 %103, -8
%109 = lshr exact i32 %108, 3
%110 = add nuw nsw i32 %109, 1
%111 = and i32 %110, 1
%112 = icmp eq i32 %108, 0
br i1 %112, label %143, label %113
113: ; preds = %102
%114 = and i32 %110, 1073741822
br label %115
115: ; preds = %115, %113
%116 = phi <4 x i32> [ %107, %113 ], [ %140, %115 ]
%117 = phi <4 x i32> [ zeroinitializer, %113 ], [ %138, %115 ]
%118 = phi <4 x i32> [ zeroinitializer, %113 ], [ %139, %115 ]
%119 = phi i32 [ 0, %113 ], [ %141, %115 ]
%120 = add nsw <4 x i32> %116, <i32 1, i32 1, i32 1, i32 1>
%121 = add <4 x i32> %116, <i32 5, i32 5, i32 5, i32 5>
%122 = and <4 x i32> %120, <i32 1, i32 1, i32 1, i32 1>
%123 = and <4 x i32> %121, <i32 1, i32 1, i32 1, i32 1>
%124 = icmp eq <4 x i32> %122, zeroinitializer
%125 = icmp eq <4 x i32> %123, zeroinitializer
%126 = select <4 x i1> %124, <4 x i32> zeroinitializer, <4 x i32> %120
%127 = select <4 x i1> %125, <4 x i32> zeroinitializer, <4 x i32> %121
%128 = add <4 x i32> %126, %117
%129 = add <4 x i32> %127, %118
%130 = add <4 x i32> %116, <i32 9, i32 9, i32 9, i32 9>
%131 = add <4 x i32> %116, <i32 13, i32 13, i32 13, i32 13>
%132 = and <4 x i32> %130, <i32 1, i32 1, i32 1, i32 1>
%133 = and <4 x i32> %131, <i32 1, i32 1, i32 1, i32 1>
%134 = icmp eq <4 x i32> %132, zeroinitializer
%135 = icmp eq <4 x i32> %133, zeroinitializer
%136 = select <4 x i1> %134, <4 x i32> zeroinitializer, <4 x i32> %130
%137 = select <4 x i1> %135, <4 x i32> zeroinitializer, <4 x i32> %131
%138 = add <4 x i32> %136, %128
%139 = add <4 x i32> %137, %129
%140 = add <4 x i32> %116, <i32 16, i32 16, i32 16, i32 16>
%141 = add i32 %119, 2
%142 = icmp eq i32 %141, %114
br i1 %142, label %143, label %115
143: ; preds = %115, %102
%144 = phi <4 x i32> [ undef, %102 ], [ %138, %115 ]
%145 = phi <4 x i32> [ undef, %102 ], [ %139, %115 ]
%146 = phi <4 x i32> [ %107, %102 ], [ %140, %115 ]
%147 = phi <4 x i32> [ zeroinitializer, %102 ], [ %138, %115 ]
%148 = phi <4 x i32> [ zeroinitializer, %102 ], [ %139, %115 ]
%149 = icmp eq i32 %111, 0
br i1 %149, label %161, label %150
150: ; preds = %143
%151 = add nsw <4 x i32> %146, <i32 1, i32 1, i32 1, i32 1>
%152 = add <4 x i32> %146, <i32 5, i32 5, i32 5, i32 5>
%153 = and <4 x i32> %151, <i32 1, i32 1, i32 1, i32 1>
%154 = and <4 x i32> %152, <i32 1, i32 1, i32 1, i32 1>
%155 = icmp eq <4 x i32> %153, zeroinitializer
%156 = icmp eq <4 x i32> %154, zeroinitializer
%157 = select <4 x i1> %155, <4 x i32> zeroinitializer, <4 x i32> %151
%158 = select <4 x i1> %156, <4 x i32> zeroinitializer, <4 x i32> %152
%159 = add <4 x i32> %157, %147
%160 = add <4 x i32> %158, %148
br label %161
161: ; preds = %143, %150
%162 = phi <4 x i32> [ %144, %143 ], [ %159, %150 ]
%163 = phi <4 x i32> [ %145, %143 ], [ %160, %150 ]
%164 = add <4 x i32> %163, %162
%165 = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> %164)
%166 = icmp eq i32 %100, %103
br i1 %166, label %179, label %167
167: ; preds = %98, %161
%168 = phi i32 [ %6, %98 ], [ %104, %161 ]
%169 = phi i32 [ 0, %98 ], [ %165, %161 ]
br label %170
170: ; preds = %167, %170
%171 = phi i32 [ %173, %170 ], [ %168, %167 ]
%172 = phi i32 [ %177, %170 ], [ %169, %167 ]
%173 = add nsw i32 %171, 1
%174 = and i32 %173, 1
%175 = icmp eq i32 %174, 0
%176 = select i1 %175, i32 0, i32 %173
%177 = add nsw i32 %176, %172
%178 = icmp eq i32 %173, %96
br i1 %178, label %179, label %170
179: ; preds = %170, %84, %161, %75, %95, %9, %93
%180 = phi i32 [ 0, %93 ], [ 0, %9 ], [ 0, %95 ], [ %79, %75 ], [ %165, %161 ], [ %91, %84 ], [ %177, %170 ]
%181 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i32 %180)
ret i32 0
}