#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();
int main1() {
  int i;
  short sa[128];
  short sb[128];
  for (i = 0; i < 128; i++) {
    sb[i] = 5;
  }
  for (i = 0; i < 128; i++) {
    if (sb[i] != 5)
      abort();
  }
  for (i = 0; i < 128; i++) {
    sa[i] = sb[i] + 100;
  }
  for (i = 0; i < 128; i++) {
    if (sa[i] != 105)
      abort();
  }
  return 0;
}


x86 assembly (clang, -O0):
<main1>:
push   %rbp
mov    %rsp,%rbp
sub    $0x210,%rsp
movl   $0x0,-0x4(%rbp)
cmpl   $0x80,-0x4(%rbp)
jge    114b <main1+0x3b>
movslq -0x4(%rbp),%rax
movw   $0x5,-0x210(%rbp,%rax,2)
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1122 <main1+0x12>
movl   $0x0,-0x4(%rbp)
cmpl   $0x80,-0x4(%rbp)
jge    118e <main1+0x7e>
movslq -0x4(%rbp),%rax
movswl -0x210(%rbp,%rax,2),%eax
ff
cmp    $0x5,%eax
je     117b <main1+0x6b>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1180 <main1+0x70>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1152 <main1+0x42>
movl   $0x0,-0x4(%rbp)
cmpl   $0x80,-0x4(%rbp)
jge    11ce <main1+0xbe>
movslq -0x4(%rbp),%rax
movswl -0x210(%rbp,%rax,2),%eax
ff
add    $0x64,%eax
mov    %ax,%cx
movslq -0x4(%rbp),%rax
mov    %cx,-0x110(%rbp,%rax,2)
ff
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1195 <main1+0x85>
movl   $0x0,-0x4(%rbp)
cmpl   $0x80,-0x4(%rbp)
jge    1211 <main1+0x101>
movslq -0x4(%rbp),%rax
movswl -0x110(%rbp,%rax,2),%eax
ff
cmp    $0x69,%eax
je     11fe <main1+0xee>
mov    $0x0,%al
call   1030 <abort@plt>
jmp    1203 <main1+0xf3>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    11d5 <main1+0xc5>
xor    %eax,%eax
add    $0x210,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main1>:
sub    $0x208,%rsp
movdqa 0xee1(%rip),%xmm0
movdqa %xmm0,(%rsp)
movdqa %xmm0,0x10(%rsp)
movdqa %xmm0,0x20(%rsp)
movdqa %xmm0,0x30(%rsp)
movdqa %xmm0,0x40(%rsp)
movdqa %xmm0,0x50(%rsp)
movdqa %xmm0,0x60(%rsp)
movdqa %xmm0,0x70(%rsp)
movdqa %xmm0,0x80(%rsp)
movdqa %xmm0,0x90(%rsp)
movdqa %xmm0,0xa0(%rsp)
movdqa %xmm0,0xb0(%rsp)
movdqa %xmm0,0xc0(%rsp)
movdqa %xmm0,0xd0(%rsp)
movdqa %xmm0,0xe0(%rsp)
movdqa %xmm0,0xf0(%rsp)
xor    %eax,%eax
nopl   0x0(%rax,%rax,1)
cmpw   $0x5,(%rsp,%rax,2)
jne    1372 <main1+0x262>
cmpw   $0x5,0x2(%rsp,%rax,2)
jne    1372 <main1+0x262>
cmpw   $0x5,0x4(%rsp,%rax,2)
jne    1372 <main1+0x262>
cmpw   $0x5,0x6(%rsp,%rax,2)
jne    1372 <main1+0x262>
add    $0x4,%rax
cmp    $0x80,%rax
jne    11a0 <main1+0x90>
movdqa 0xe2d(%rip),%xmm0
movdqa (%rsp),%xmm1
paddw  %xmm0,%xmm1
movdqa 0x10(%rsp),%xmm2
paddw  %xmm0,%xmm2
movdqa %xmm1,0x100(%rsp)
movdqa %xmm2,0x110(%rsp)
movdqa 0x20(%rsp),%xmm1
paddw  %xmm0,%xmm1
movdqa 0x30(%rsp),%xmm2
paddw  %xmm0,%xmm2
movdqa %xmm1,0x120(%rsp)
movdqa %xmm2,0x130(%rsp)
movdqa 0x40(%rsp),%xmm1
paddw  %xmm0,%xmm1
movdqa 0x50(%rsp),%xmm2
paddw  %xmm0,%xmm2
movdqa %xmm1,0x140(%rsp)
movdqa %xmm2,0x150(%rsp)
movdqa 0x60(%rsp),%xmm1
paddw  %xmm0,%xmm1
movdqa 0x70(%rsp),%xmm2
paddw  %xmm0,%xmm2
movdqa %xmm1,0x160(%rsp)
movdqa %xmm2,0x170(%rsp)
movdqa 0x80(%rsp),%xmm1
paddw  %xmm0,%xmm1
movdqa 0x90(%rsp),%xmm2
paddw  %xmm0,%xmm2
movdqa %xmm1,0x180(%rsp)
movdqa %xmm2,0x190(%rsp)
movdqa 0xa0(%rsp),%xmm1
paddw  %xmm0,%xmm1
movdqa 0xb0(%rsp),%xmm2
paddw  %xmm0,%xmm2
movdqa %xmm1,0x1a0(%rsp)
movdqa %xmm2,0x1b0(%rsp)
movdqa 0xc0(%rsp),%xmm1
paddw  %xmm0,%xmm1
movdqa 0xd0(%rsp),%xmm2
paddw  %xmm0,%xmm2
movdqa %xmm1,0x1c0(%rsp)
movdqa 0xe0(%rsp),%xmm1
paddw  %xmm0,%xmm1
paddw  0xf0(%rsp),%xmm0
movdqa %xmm2,0x1d0(%rsp)
movdqa %xmm1,0x1e0(%rsp)
movdqa %xmm0,0x1f0(%rsp)
xor    %eax,%eax
nopl   0x0(%rax,%rax,1)
cmpw   $0x69,0x100(%rsp,%rax,2)
jne    1372 <main1+0x262>
cmpw   $0x69,0x102(%rsp,%rax,2)
jne    1372 <main1+0x262>
cmpw   $0x69,0x104(%rsp,%rax,2)
jne    1372 <main1+0x262>
cmpw   $0x69,0x106(%rsp,%rax,2)
jne    1372 <main1+0x262>
add    $0x4,%rax
cmp    $0x80,%rax
jne    1330 <main1+0x220>
xor    %eax,%eax
add    $0x208,%rsp
ret
xor    %eax,%eax
call   1030 <abort@plt>

LLVM IR (-O0):
define i32 @main1() {
%1 = alloca i32
%2 = alloca [128 x i16]
%3 = alloca [128 x i16]
store i32 0, i32* %1
br label %4
4: ; preds = %11, %0
%5 = load i32, i32* %1
%6 = icmp slt i32 %5, 128
br i1 %6, label %7, label %14
7: ; preds = %4
%8 = load i32, i32* %1
%9 = sext i32 %8 to i64
%10 = getelementptr inbounds [128 x i16], [128 x i16]* %3, i64 0, i64 %9
store i16 5, i16* %10
br label %11
11: ; preds = %7
%12 = load i32, i32* %1
%13 = add nsw i32 %12, 1
store i32 %13, i32* %1
br label %4
14: ; preds = %4
store i32 0, i32* %1
br label %15
15: ; preds = %28, %14
%16 = load i32, i32* %1
%17 = icmp slt i32 %16, 128
br i1 %17, label %18, label %31
18: ; preds = %15
%19 = load i32, i32* %1
%20 = sext i32 %19 to i64
%21 = getelementptr inbounds [128 x i16], [128 x i16]* %3, i64 0, i64 %20
%22 = load i16, i16* %21
%23 = sext i16 %22 to i32
%24 = icmp ne i32 %23, 5
br i1 %24, label %25, label %27
25: ; preds = %18
%26 = call i32 (...) @abort()
unreachable
27: ; preds = %18
br label %28
28: ; preds = %27
%29 = load i32, i32* %1
%30 = add nsw i32 %29, 1
store i32 %30, i32* %1
br label %15
31: ; preds = %15
store i32 0, i32* %1
br label %32
32: ; preds = %46, %31
%33 = load i32, i32* %1
%34 = icmp slt i32 %33, 128
br i1 %34, label %35, label %49
35: ; preds = %32
%36 = load i32, i32* %1
%37 = sext i32 %36 to i64
%38 = getelementptr inbounds [128 x i16], [128 x i16]* %3, i64 0, i64 %37
%39 = load i16, i16* %38
%40 = sext i16 %39 to i32
%41 = add nsw i32 %40, 100
%42 = trunc i32 %41 to i16
%43 = load i32, i32* %1
%44 = sext i32 %43 to i64
%45 = getelementptr inbounds [128 x i16], [128 x i16]* %2, i64 0, i64 %44
store i16 %42, i16* %45
br label %46
46: ; preds = %35
%47 = load i32, i32* %1
%48 = add nsw i32 %47, 1
store i32 %48, i32* %1
br label %32
49: ; preds = %32
store i32 0, i32* %1
br label %50
50: ; preds = %63, %49
%51 = load i32, i32* %1
%52 = icmp slt i32 %51, 128
br i1 %52, label %53, label %66
53: ; preds = %50
%54 = load i32, i32* %1
%55 = sext i32 %54 to i64
%56 = getelementptr inbounds [128 x i16], [128 x i16]* %2, i64 0, i64 %55
%57 = load i16, i16* %56
%58 = sext i16 %57 to i32
%59 = icmp ne i32 %58, 105
br i1 %59, label %60, label %62
60: ; preds = %53
%61 = call i32 (...) @abort()
unreachable
62: ; preds = %53
br label %63
63: ; preds = %62
%64 = load i32, i32* %1
%65 = add nsw i32 %64, 1
store i32 %65, i32* %1
br label %50
66: ; preds = %50
ret i32 0
}

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