void computation(int *A, int *B, int constant) {
  int i;
#pragma scop
#pragma species kernel A[0 : 127] | element->B[0 : 127] | element
  for (i = 0; i < 128; i++) {
    B[i] = 2 * A[i] + constant;
  }
#pragma species endkernel example12
#pragma endscop
}


x86 assembly (clang, -O0):
<computation>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %edx,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x80,-0x18(%rbp)
jge    114d <computation+0x4d>
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,4),%edx
shl    $0x1,%edx
add    -0x14(%rbp),%edx
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1116 <computation+0x16>
pop    %rbp
ret

x86 assembly (clang, -O2):
<computation>:
lea    0x200(%rdi),%rax
cmp    %rsi,%rax
jbe    1157 <computation+0x57>
lea    0x200(%rsi),%rax
cmp    %rdi,%rax
jbe    1157 <computation+0x57>
xor    %eax,%eax
nopw   0x0(%rax,%rax,1)
mov    (%rdi,%rax,4),%ecx
lea    (%rdx,%rcx,2),%ecx
mov    %ecx,(%rsi,%rax,4)
mov    0x4(%rdi,%rax,4),%ecx
lea    (%rdx,%rcx,2),%ecx
mov    %ecx,0x4(%rsi,%rax,4)
mov    0x8(%rdi,%rax,4),%ecx
lea    (%rdx,%rcx,2),%ecx
mov    %ecx,0x8(%rsi,%rax,4)
mov    0xc(%rdi,%rax,4),%ecx
lea    (%rdx,%rcx,2),%ecx
mov    %ecx,0xc(%rsi,%rax,4)
add    $0x4,%rax
cmp    $0x80,%rax
jne    1120 <computation+0x20>
ret
movd   %edx,%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqu (%rdi),%xmm1
movdqu 0x10(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,(%rsi)
movdqu %xmm2,0x10(%rsi)
movdqu 0x20(%rdi),%xmm1
movdqu 0x30(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0x20(%rsi)
movdqu %xmm2,0x30(%rsi)
movdqu 0x40(%rdi),%xmm1
movdqu 0x50(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0x40(%rsi)
movdqu %xmm2,0x50(%rsi)
movdqu 0x60(%rdi),%xmm1
movdqu 0x70(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0x60(%rsi)
movdqu %xmm2,0x70(%rsi)
movdqu 0x80(%rdi),%xmm1
movdqu 0x90(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0x80(%rsi)
movdqu %xmm2,0x90(%rsi)
movdqu 0xa0(%rdi),%xmm1
movdqu 0xb0(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0xa0(%rsi)
movdqu %xmm2,0xb0(%rsi)
movdqu 0xc0(%rdi),%xmm1
movdqu 0xd0(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0xc0(%rsi)
movdqu %xmm2,0xd0(%rsi)
movdqu 0xe0(%rdi),%xmm1
movdqu 0xf0(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0xe0(%rsi)
movdqu %xmm2,0xf0(%rsi)
movdqu 0x100(%rdi),%xmm1
movdqu 0x110(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0x100(%rsi)
movdqu %xmm2,0x110(%rsi)
movdqu 0x120(%rdi),%xmm1
movdqu 0x130(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0x120(%rsi)
movdqu %xmm2,0x130(%rsi)
movdqu 0x140(%rdi),%xmm1
movdqu 0x150(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0x140(%rsi)
movdqu %xmm2,0x150(%rsi)
movdqu 0x160(%rdi),%xmm1
movdqu 0x170(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0x160(%rsi)
movdqu %xmm2,0x170(%rsi)
movdqu 0x180(%rdi),%xmm1
movdqu 0x190(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0x180(%rsi)
movdqu %xmm2,0x190(%rsi)
movdqu 0x1a0(%rdi),%xmm1
movdqu 0x1b0(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0x1a0(%rsi)
movdqu %xmm2,0x1b0(%rsi)
movdqu 0x1c0(%rdi),%xmm1
movdqu 0x1d0(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0x1c0(%rsi)
movdqu %xmm2,0x1d0(%rsi)
movdqu 0x1e0(%rdi),%xmm1
movdqu 0x1f0(%rdi),%xmm2
paddd  %xmm1,%xmm1
paddd  %xmm2,%xmm2
paddd  %xmm0,%xmm1
paddd  %xmm0,%xmm2
movdqu %xmm1,0x1e0(%rsi)
movdqu %xmm2,0x1f0(%rsi)
ret

LLVM IR (-O0):
define void @computation(i32* %0, i32* %1, i32 %2) {
%4 = alloca i32*
%5 = alloca i32*
%6 = alloca i32
%7 = alloca i32
store i32* %0, i32** %4
store i32* %1, i32** %5
store i32 %2, i32* %6
store i32 0, i32* %7
br label %8
8: ; preds = %24, %3
%9 = load i32, i32* %7
%10 = icmp slt i32 %9, 128
br i1 %10, label %11, label %27
11: ; preds = %8
%12 = load i32*, i32** %4
%13 = load i32, i32* %7
%14 = sext i32 %13 to i64
%15 = getelementptr inbounds i32, i32* %12, i64 %14
%16 = load i32, i32* %15
%17 = mul nsw i32 2, %16
%18 = load i32, i32* %6
%19 = add nsw i32 %17, %18
%20 = load i32*, i32** %5
%21 = load i32, i32* %7
%22 = sext i32 %21 to i64
%23 = getelementptr inbounds i32, i32* %20, i64 %22
store i32 %19, i32* %23
br label %24
24: ; preds = %11
%25 = load i32, i32* %7
%26 = add nsw i32 %25, 1
store i32 %26, i32* %7
br label %8
27: ; preds = %8
ret void
}

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