void draw_grid(unsigned short *addr, unsigned short colour) {
  int x, y;
  unsigned int linesize = 640;
  for (x = 0; x < 640; x += 32) {
    for (y = 0; y < 480; y++) {
      addr[(linesize * y) + x] = colour;
    }
  }
  for (y = 0; y < 480; y += 32) {
    for (x = 0; x < 640; x++) {
      addr[(linesize * y) + x] = colour;
    }
  }
}


x86 assembly (clang, -O0):
<draw_grid>:
push   %rbp
mov    %rsp,%rbp
mov    %si,%ax
mov    %rdi,-0x8(%rbp)
mov    %ax,-0xa(%rbp)
movl   $0x280,-0x18(%rbp)
movl   $0x0,-0x10(%rbp)
cmpl   $0x280,-0x10(%rbp)
jge    1177 <draw_grid+0x77>
movl   $0x0,-0x14(%rbp)
cmpl   $0x1e0,-0x14(%rbp)
jge    1164 <draw_grid+0x64>
mov    -0xa(%rbp),%dx
mov    -0x8(%rbp),%rax
mov    -0x18(%rbp),%ecx
imul   -0x14(%rbp),%ecx
add    -0x10(%rbp),%ecx
mov    %ecx,%ecx
mov    %dx,(%rax,%rcx,2)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1131 <draw_grid+0x31>
jmp    1169 <draw_grid+0x69>
mov    -0x10(%rbp),%eax
add    $0x20,%eax
mov    %eax,-0x10(%rbp)
jmp    111d <draw_grid+0x1d>
movl   $0x0,-0x14(%rbp)
cmpl   $0x1e0,-0x14(%rbp)
jge    11d8 <draw_grid+0xd8>
movl   $0x0,-0x10(%rbp)
cmpl   $0x280,-0x10(%rbp)
jge    11c5 <draw_grid+0xc5>
mov    -0xa(%rbp),%dx
mov    -0x8(%rbp),%rax
mov    -0x18(%rbp),%ecx
imul   -0x14(%rbp),%ecx
add    -0x10(%rbp),%ecx
mov    %ecx,%ecx
mov    %dx,(%rax,%rcx,2)
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    1192 <draw_grid+0x92>
jmp    11ca <draw_grid+0xca>
mov    -0x14(%rbp),%eax
add    $0x20,%eax
mov    %eax,-0x14(%rbp)
jmp    117e <draw_grid+0x7e>
pop    %rbp
ret

x86 assembly (clang, -O2):
<draw_grid>:
xor    %ecx,%ecx
mov    %rdi,%rax
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x1400,%edx
cs nopw 0x0(%rax,%rax,1)
nop
mov    %si,-0x1400(%rax,%rdx,1)
ff
mov    %si,-0xf00(%rax,%rdx,1)
ff
mov    %si,-0xa00(%rax,%rdx,1)
ff
mov    %si,-0x500(%rax,%rdx,1)
ff
mov    %si,(%rax,%rdx,1)
add    $0x1900,%rdx
cmp    $0x97400,%rdx
jne    1120 <draw_grid+0x20>
lea    0x20(%rcx),%rdx
add    $0x40,%rax
cmp    $0x260,%rcx
mov    %rdx,%rcx
jb     1110 <draw_grid+0x10>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqu %xmm0,(%rdi)
movdqu %xmm0,0x10(%rdi)
movdqu %xmm0,0x20(%rdi)
movdqu %xmm0,0x30(%rdi)
movdqu %xmm0,0x40(%rdi)
movdqu %xmm0,0x50(%rdi)
movdqu %xmm0,0x60(%rdi)
movdqu %xmm0,0x70(%rdi)
movdqu %xmm0,0x80(%rdi)
movdqu %xmm0,0x90(%rdi)
movdqu %xmm0,0xa0(%rdi)
movdqu %xmm0,0xb0(%rdi)
movdqu %xmm0,0xc0(%rdi)
movdqu %xmm0,0xd0(%rdi)
movdqu %xmm0,0xe0(%rdi)
movdqu %xmm0,0xf0(%rdi)
movdqu %xmm0,0x100(%rdi)
movdqu %xmm0,0x110(%rdi)
movdqu %xmm0,0x120(%rdi)
movdqu %xmm0,0x130(%rdi)
movdqu %xmm0,0x140(%rdi)
movdqu %xmm0,0x150(%rdi)
movdqu %xmm0,0x160(%rdi)
movdqu %xmm0,0x170(%rdi)
movdqu %xmm0,0x180(%rdi)
movdqu %xmm0,0x190(%rdi)
movdqu %xmm0,0x1a0(%rdi)
movdqu %xmm0,0x1b0(%rdi)
movdqu %xmm0,0x1c0(%rdi)
movdqu %xmm0,0x1d0(%rdi)
movdqu %xmm0,0x1e0(%rdi)
movdqu %xmm0,0x1f0(%rdi)
movdqu %xmm0,0x200(%rdi)
movdqu %xmm0,0x210(%rdi)
movdqu %xmm0,0x220(%rdi)
movdqu %xmm0,0x230(%rdi)
movdqu %xmm0,0x240(%rdi)
movdqu %xmm0,0x250(%rdi)
movdqu %xmm0,0x260(%rdi)
movdqu %xmm0,0x270(%rdi)
movdqu %xmm0,0x280(%rdi)
movdqu %xmm0,0x290(%rdi)
movdqu %xmm0,0x2a0(%rdi)
movdqu %xmm0,0x2b0(%rdi)
movdqu %xmm0,0x2c0(%rdi)
movdqu %xmm0,0x2d0(%rdi)
movdqu %xmm0,0x2e0(%rdi)
movdqu %xmm0,0x2f0(%rdi)
movdqu %xmm0,0x300(%rdi)
movdqu %xmm0,0x310(%rdi)
movdqu %xmm0,0x320(%rdi)
movdqu %xmm0,0x330(%rdi)
movdqu %xmm0,0x340(%rdi)
movdqu %xmm0,0x350(%rdi)
movdqu %xmm0,0x360(%rdi)
movdqu %xmm0,0x370(%rdi)
movdqu %xmm0,0x380(%rdi)
movdqu %xmm0,0x390(%rdi)
movdqu %xmm0,0x3a0(%rdi)
movdqu %xmm0,0x3b0(%rdi)
movdqu %xmm0,0x3c0(%rdi)
movdqu %xmm0,0x3d0(%rdi)
movdqu %xmm0,0x3e0(%rdi)
movdqu %xmm0,0x3f0(%rdi)
movdqu %xmm0,0x400(%rdi)
movdqu %xmm0,0x410(%rdi)
movdqu %xmm0,0x420(%rdi)
movdqu %xmm0,0x430(%rdi)
movdqu %xmm0,0x440(%rdi)
movdqu %xmm0,0x450(%rdi)
movdqu %xmm0,0x460(%rdi)
movdqu %xmm0,0x470(%rdi)
movdqu %xmm0,0x480(%rdi)
movdqu %xmm0,0x490(%rdi)
movdqu %xmm0,0x4a0(%rdi)
movdqu %xmm0,0x4b0(%rdi)
movdqu %xmm0,0x4c0(%rdi)
movdqu %xmm0,0x4d0(%rdi)
movdqu %xmm0,0x4e0(%rdi)
movdqu %xmm0,0x4f0(%rdi)
xor    %eax,%eax
nop
movdqu %xmm0,0xa000(%rdi,%rax,2)
movdqu %xmm0,0xa010(%rdi,%rax,2)
movdqu %xmm0,0xa020(%rdi,%rax,2)
movdqu %xmm0,0xa030(%rdi,%rax,2)
movdqu %xmm0,0xa040(%rdi,%rax,2)
movdqu %xmm0,0xa050(%rdi,%rax,2)
movdqu %xmm0,0xa060(%rdi,%rax,2)
movdqu %xmm0,0xa070(%rdi,%rax,2)
movdqu %xmm0,0xa080(%rdi,%rax,2)
movdqu %xmm0,0xa090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    13e0 <draw_grid+0x2e0>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu %xmm0,0x14000(%rdi,%rax,2)
movdqu %xmm0,0x14010(%rdi,%rax,2)
movdqu %xmm0,0x14020(%rdi,%rax,2)
movdqu %xmm0,0x14030(%rdi,%rax,2)
movdqu %xmm0,0x14040(%rdi,%rax,2)
movdqu %xmm0,0x14050(%rdi,%rax,2)
movdqu %xmm0,0x14060(%rdi,%rax,2)
movdqu %xmm0,0x14070(%rdi,%rax,2)
movdqu %xmm0,0x14080(%rdi,%rax,2)
movdqu %xmm0,0x14090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    1460 <draw_grid+0x360>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu %xmm0,0x1e000(%rdi,%rax,2)
movdqu %xmm0,0x1e010(%rdi,%rax,2)
movdqu %xmm0,0x1e020(%rdi,%rax,2)
movdqu %xmm0,0x1e030(%rdi,%rax,2)
movdqu %xmm0,0x1e040(%rdi,%rax,2)
movdqu %xmm0,0x1e050(%rdi,%rax,2)
movdqu %xmm0,0x1e060(%rdi,%rax,2)
movdqu %xmm0,0x1e070(%rdi,%rax,2)
movdqu %xmm0,0x1e080(%rdi,%rax,2)
movdqu %xmm0,0x1e090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    14e0 <draw_grid+0x3e0>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu %xmm0,0x28000(%rdi,%rax,2)
movdqu %xmm0,0x28010(%rdi,%rax,2)
movdqu %xmm0,0x28020(%rdi,%rax,2)
movdqu %xmm0,0x28030(%rdi,%rax,2)
movdqu %xmm0,0x28040(%rdi,%rax,2)
movdqu %xmm0,0x28050(%rdi,%rax,2)
movdqu %xmm0,0x28060(%rdi,%rax,2)
movdqu %xmm0,0x28070(%rdi,%rax,2)
movdqu %xmm0,0x28080(%rdi,%rax,2)
movdqu %xmm0,0x28090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    1560 <draw_grid+0x460>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu %xmm0,0x32000(%rdi,%rax,2)
movdqu %xmm0,0x32010(%rdi,%rax,2)
movdqu %xmm0,0x32020(%rdi,%rax,2)
movdqu %xmm0,0x32030(%rdi,%rax,2)
movdqu %xmm0,0x32040(%rdi,%rax,2)
movdqu %xmm0,0x32050(%rdi,%rax,2)
movdqu %xmm0,0x32060(%rdi,%rax,2)
movdqu %xmm0,0x32070(%rdi,%rax,2)
movdqu %xmm0,0x32080(%rdi,%rax,2)
movdqu %xmm0,0x32090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    15e0 <draw_grid+0x4e0>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu %xmm0,0x3c000(%rdi,%rax,2)
movdqu %xmm0,0x3c010(%rdi,%rax,2)
movdqu %xmm0,0x3c020(%rdi,%rax,2)
movdqu %xmm0,0x3c030(%rdi,%rax,2)
movdqu %xmm0,0x3c040(%rdi,%rax,2)
movdqu %xmm0,0x3c050(%rdi,%rax,2)
movdqu %xmm0,0x3c060(%rdi,%rax,2)
movdqu %xmm0,0x3c070(%rdi,%rax,2)
movdqu %xmm0,0x3c080(%rdi,%rax,2)
movdqu %xmm0,0x3c090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    1660 <draw_grid+0x560>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu %xmm0,0x46000(%rdi,%rax,2)
movdqu %xmm0,0x46010(%rdi,%rax,2)
movdqu %xmm0,0x46020(%rdi,%rax,2)
movdqu %xmm0,0x46030(%rdi,%rax,2)
movdqu %xmm0,0x46040(%rdi,%rax,2)
movdqu %xmm0,0x46050(%rdi,%rax,2)
movdqu %xmm0,0x46060(%rdi,%rax,2)
movdqu %xmm0,0x46070(%rdi,%rax,2)
movdqu %xmm0,0x46080(%rdi,%rax,2)
movdqu %xmm0,0x46090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    16e0 <draw_grid+0x5e0>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu %xmm0,0x50000(%rdi,%rax,2)
movdqu %xmm0,0x50010(%rdi,%rax,2)
movdqu %xmm0,0x50020(%rdi,%rax,2)
movdqu %xmm0,0x50030(%rdi,%rax,2)
movdqu %xmm0,0x50040(%rdi,%rax,2)
movdqu %xmm0,0x50050(%rdi,%rax,2)
movdqu %xmm0,0x50060(%rdi,%rax,2)
movdqu %xmm0,0x50070(%rdi,%rax,2)
movdqu %xmm0,0x50080(%rdi,%rax,2)
movdqu %xmm0,0x50090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    1760 <draw_grid+0x660>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu %xmm0,0x5a000(%rdi,%rax,2)
movdqu %xmm0,0x5a010(%rdi,%rax,2)
movdqu %xmm0,0x5a020(%rdi,%rax,2)
movdqu %xmm0,0x5a030(%rdi,%rax,2)
movdqu %xmm0,0x5a040(%rdi,%rax,2)
movdqu %xmm0,0x5a050(%rdi,%rax,2)
movdqu %xmm0,0x5a060(%rdi,%rax,2)
movdqu %xmm0,0x5a070(%rdi,%rax,2)
movdqu %xmm0,0x5a080(%rdi,%rax,2)
movdqu %xmm0,0x5a090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    17e0 <draw_grid+0x6e0>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu %xmm0,0x64000(%rdi,%rax,2)
movdqu %xmm0,0x64010(%rdi,%rax,2)
movdqu %xmm0,0x64020(%rdi,%rax,2)
movdqu %xmm0,0x64030(%rdi,%rax,2)
movdqu %xmm0,0x64040(%rdi,%rax,2)
movdqu %xmm0,0x64050(%rdi,%rax,2)
movdqu %xmm0,0x64060(%rdi,%rax,2)
movdqu %xmm0,0x64070(%rdi,%rax,2)
movdqu %xmm0,0x64080(%rdi,%rax,2)
movdqu %xmm0,0x64090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    1860 <draw_grid+0x760>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu %xmm0,0x6e000(%rdi,%rax,2)
movdqu %xmm0,0x6e010(%rdi,%rax,2)
movdqu %xmm0,0x6e020(%rdi,%rax,2)
movdqu %xmm0,0x6e030(%rdi,%rax,2)
movdqu %xmm0,0x6e040(%rdi,%rax,2)
movdqu %xmm0,0x6e050(%rdi,%rax,2)
movdqu %xmm0,0x6e060(%rdi,%rax,2)
movdqu %xmm0,0x6e070(%rdi,%rax,2)
movdqu %xmm0,0x6e080(%rdi,%rax,2)
movdqu %xmm0,0x6e090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    18e0 <draw_grid+0x7e0>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu %xmm0,0x78000(%rdi,%rax,2)
movdqu %xmm0,0x78010(%rdi,%rax,2)
movdqu %xmm0,0x78020(%rdi,%rax,2)
movdqu %xmm0,0x78030(%rdi,%rax,2)
movdqu %xmm0,0x78040(%rdi,%rax,2)
movdqu %xmm0,0x78050(%rdi,%rax,2)
movdqu %xmm0,0x78060(%rdi,%rax,2)
movdqu %xmm0,0x78070(%rdi,%rax,2)
movdqu %xmm0,0x78080(%rdi,%rax,2)
movdqu %xmm0,0x78090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    1960 <draw_grid+0x860>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu %xmm0,0x82000(%rdi,%rax,2)
movdqu %xmm0,0x82010(%rdi,%rax,2)
movdqu %xmm0,0x82020(%rdi,%rax,2)
movdqu %xmm0,0x82030(%rdi,%rax,2)
movdqu %xmm0,0x82040(%rdi,%rax,2)
movdqu %xmm0,0x82050(%rdi,%rax,2)
movdqu %xmm0,0x82060(%rdi,%rax,2)
movdqu %xmm0,0x82070(%rdi,%rax,2)
movdqu %xmm0,0x82080(%rdi,%rax,2)
movdqu %xmm0,0x82090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    19e0 <draw_grid+0x8e0>
movd   %esi,%xmm0
pshuflw $0x0,%xmm0,%xmm0
pshufd $0x0,%xmm0,%xmm0
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu %xmm0,0x8c000(%rdi,%rax,2)
movdqu %xmm0,0x8c010(%rdi,%rax,2)
movdqu %xmm0,0x8c020(%rdi,%rax,2)
movdqu %xmm0,0x8c030(%rdi,%rax,2)
movdqu %xmm0,0x8c040(%rdi,%rax,2)
movdqu %xmm0,0x8c050(%rdi,%rax,2)
movdqu %xmm0,0x8c060(%rdi,%rax,2)
movdqu %xmm0,0x8c070(%rdi,%rax,2)
movdqu %xmm0,0x8c080(%rdi,%rax,2)
movdqu %xmm0,0x8c090(%rdi,%rax,2)
add    $0x50,%rax
cmp    $0x280,%rax
jne    1a60 <draw_grid+0x960>
ret

LLVM IR (-O0):
define void @draw_grid(i16* %0, i16 zeroext %1) {
%3 = alloca i16*
%4 = alloca i16
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
store i16* %0, i16** %3
store i16 %1, i16* %4
store i32 640, i32* %7
store i32 0, i32* %5
br label %8
8: ; preds = %29, %2
%9 = load i32, i32* %5
%10 = icmp slt i32 %9, 640
br i1 %10, label %11, label %32
11: ; preds = %8
store i32 0, i32* %6
br label %12
12: ; preds = %25, %11
%13 = load i32, i32* %6
%14 = icmp slt i32 %13, 480
br i1 %14, label %15, label %28
15: ; preds = %12
%16 = load i16, i16* %4
%17 = load i16*, i16** %3
%18 = load i32, i32* %7
%19 = load i32, i32* %6
%20 = mul i32 %18, %19
%21 = load i32, i32* %5
%22 = add i32 %20, %21
%23 = zext i32 %22 to i64
%24 = getelementptr inbounds i16, i16* %17, i64 %23
store i16 %16, i16* %24
br label %25
25: ; preds = %15
%26 = load i32, i32* %6
%27 = add nsw i32 %26, 1
store i32 %27, i32* %6
br label %12
28: ; preds = %12
br label %29
29: ; preds = %28
%30 = load i32, i32* %5
%31 = add nsw i32 %30, 32
store i32 %31, i32* %5
br label %8
32: ; preds = %8
store i32 0, i32* %6
br label %33
33: ; preds = %54, %32
%34 = load i32, i32* %6
%35 = icmp slt i32 %34, 480
br i1 %35, label %36, label %57
36: ; preds = %33
store i32 0, i32* %5
br label %37
37: ; preds = %50, %36
%38 = load i32, i32* %5
%39 = icmp slt i32 %38, 640
br i1 %39, label %40, label %53
40: ; preds = %37
%41 = load i16, i16* %4
%42 = load i16*, i16** %3
%43 = load i32, i32* %7
%44 = load i32, i32* %6
%45 = mul i32 %43, %44
%46 = load i32, i32* %5
%47 = add i32 %45, %46
%48 = zext i32 %47 to i64
%49 = getelementptr inbounds i16, i16* %42, i64 %48
store i16 %41, i16* %49
br label %50
50: ; preds = %40
%51 = load i32, i32* %5
%52 = add nsw i32 %51, 1
store i32 %52, i32* %5
br label %37
53: ; preds = %37
br label %54
54: ; preds = %53
%55 = load i32, i32* %6
%56 = add nsw i32 %55, 32
store i32 %56, i32* %6
br label %33
57: ; preds = %33
ret void
}

LLVM IR (-O2):
define void @draw_grid(i16* nocapture writeonly %0, i16 zeroext %1) {
br label %3
3: ; preds = %2, %28
%4 = phi i64 [ 0, %2 ], [ %29, %28 ]
br label %5
5: ; preds = %5, %3
%6 = phi i64 [ 0, %3 ], [ %26, %5 ]
%7 = mul nuw nsw i64 %6, 640
%8 = add nuw nsw i64 %7, %4
%9 = getelementptr inbounds i16, i16* %0, i64 %8
store i16 %1, i16* %9
%10 = mul i64 %6, 640
%11 = add i64 %10, 640
%12 = add nuw nsw i64 %11, %4
%13 = getelementptr inbounds i16, i16* %0, i64 %12
store i16 %1, i16* %13
%14 = mul i64 %6, 640
%15 = add i64 %14, 1280
%16 = add nuw nsw i64 %15, %4
%17 = getelementptr inbounds i16, i16* %0, i64 %16
store i16 %1, i16* %17
%18 = mul i64 %6, 640
%19 = add i64 %18, 1920
%20 = add nuw nsw i64 %19, %4
%21 = getelementptr inbounds i16, i16* %0, i64 %20
store i16 %1, i16* %21
%22 = mul i64 %6, 640
%23 = add i64 %22, 2560
%24 = add nuw nsw i64 %23, %4
%25 = getelementptr inbounds i16, i16* %0, i64 %24
store i16 %1, i16* %25
%26 = add nuw nsw i64 %6, 5
%27 = icmp eq i64 %26, 480
br i1 %27, label %28, label %5
28: ; preds = %5
%29 = add nuw nsw i64 %4, 32
%30 = icmp ult i64 %4, 608
br i1 %30, label %3, label %31
31: ; preds = %28
%32 = insertelement <8 x i16> poison, i16 %1, i64 0
%33 = shufflevector <8 x i16> %32, <8 x i16> poison, <8 x i32> zeroinitializer
%34 = insertelement <8 x i16> poison, i16 %1, i64 0
%35 = shufflevector <8 x i16> %34, <8 x i16> poison, <8 x i32> zeroinitializer
%36 = bitcast i16* %0 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %36
%37 = getelementptr inbounds i16, i16* %0, i64 8
%38 = bitcast i16* %37 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %38
%39 = getelementptr inbounds i16, i16* %0, i64 16
%40 = bitcast i16* %39 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %40
%41 = getelementptr inbounds i16, i16* %0, i64 24
%42 = bitcast i16* %41 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %42
%43 = getelementptr inbounds i16, i16* %0, i64 32
%44 = bitcast i16* %43 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %44
%45 = getelementptr inbounds i16, i16* %0, i64 40
%46 = bitcast i16* %45 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %46
%47 = getelementptr inbounds i16, i16* %0, i64 48
%48 = bitcast i16* %47 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %48
%49 = getelementptr inbounds i16, i16* %0, i64 56
%50 = bitcast i16* %49 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %50
%51 = getelementptr inbounds i16, i16* %0, i64 64
%52 = bitcast i16* %51 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %52
%53 = getelementptr inbounds i16, i16* %0, i64 72
%54 = bitcast i16* %53 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %54
%55 = getelementptr inbounds i16, i16* %0, i64 80
%56 = bitcast i16* %55 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %56
%57 = getelementptr inbounds i16, i16* %0, i64 88
%58 = bitcast i16* %57 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %58
%59 = getelementptr inbounds i16, i16* %0, i64 96
%60 = bitcast i16* %59 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %60
%61 = getelementptr inbounds i16, i16* %0, i64 104
%62 = bitcast i16* %61 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %62
%63 = getelementptr inbounds i16, i16* %0, i64 112
%64 = bitcast i16* %63 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %64
%65 = getelementptr inbounds i16, i16* %0, i64 120
%66 = bitcast i16* %65 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %66
%67 = getelementptr inbounds i16, i16* %0, i64 128
%68 = bitcast i16* %67 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %68
%69 = getelementptr inbounds i16, i16* %0, i64 136
%70 = bitcast i16* %69 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %70
%71 = getelementptr inbounds i16, i16* %0, i64 144
%72 = bitcast i16* %71 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %72
%73 = getelementptr inbounds i16, i16* %0, i64 152
%74 = bitcast i16* %73 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %74
%75 = getelementptr inbounds i16, i16* %0, i64 160
%76 = bitcast i16* %75 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %76
%77 = getelementptr inbounds i16, i16* %0, i64 168
%78 = bitcast i16* %77 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %78
%79 = getelementptr inbounds i16, i16* %0, i64 176
%80 = bitcast i16* %79 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %80
%81 = getelementptr inbounds i16, i16* %0, i64 184
%82 = bitcast i16* %81 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %82
%83 = getelementptr inbounds i16, i16* %0, i64 192
%84 = bitcast i16* %83 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %84
%85 = getelementptr inbounds i16, i16* %0, i64 200
%86 = bitcast i16* %85 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %86
%87 = getelementptr inbounds i16, i16* %0, i64 208
%88 = bitcast i16* %87 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %88
%89 = getelementptr inbounds i16, i16* %0, i64 216
%90 = bitcast i16* %89 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %90
%91 = getelementptr inbounds i16, i16* %0, i64 224
%92 = bitcast i16* %91 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %92
%93 = getelementptr inbounds i16, i16* %0, i64 232
%94 = bitcast i16* %93 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %94
%95 = getelementptr inbounds i16, i16* %0, i64 240
%96 = bitcast i16* %95 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %96
%97 = getelementptr inbounds i16, i16* %0, i64 248
%98 = bitcast i16* %97 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %98
%99 = getelementptr inbounds i16, i16* %0, i64 256
%100 = bitcast i16* %99 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %100
%101 = getelementptr inbounds i16, i16* %0, i64 264
%102 = bitcast i16* %101 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %102
%103 = getelementptr inbounds i16, i16* %0, i64 272
%104 = bitcast i16* %103 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %104
%105 = getelementptr inbounds i16, i16* %0, i64 280
%106 = bitcast i16* %105 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %106
%107 = getelementptr inbounds i16, i16* %0, i64 288
%108 = bitcast i16* %107 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %108
%109 = getelementptr inbounds i16, i16* %0, i64 296
%110 = bitcast i16* %109 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %110
%111 = getelementptr inbounds i16, i16* %0, i64 304
%112 = bitcast i16* %111 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %112
%113 = getelementptr inbounds i16, i16* %0, i64 312
%114 = bitcast i16* %113 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %114
%115 = getelementptr inbounds i16, i16* %0, i64 320
%116 = bitcast i16* %115 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %116
%117 = getelementptr inbounds i16, i16* %0, i64 328
%118 = bitcast i16* %117 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %118
%119 = getelementptr inbounds i16, i16* %0, i64 336
%120 = bitcast i16* %119 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %120
%121 = getelementptr inbounds i16, i16* %0, i64 344
%122 = bitcast i16* %121 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %122
%123 = getelementptr inbounds i16, i16* %0, i64 352
%124 = bitcast i16* %123 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %124
%125 = getelementptr inbounds i16, i16* %0, i64 360
%126 = bitcast i16* %125 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %126
%127 = getelementptr inbounds i16, i16* %0, i64 368
%128 = bitcast i16* %127 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %128
%129 = getelementptr inbounds i16, i16* %0, i64 376
%130 = bitcast i16* %129 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %130
%131 = getelementptr inbounds i16, i16* %0, i64 384
%132 = bitcast i16* %131 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %132
%133 = getelementptr inbounds i16, i16* %0, i64 392
%134 = bitcast i16* %133 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %134
%135 = getelementptr inbounds i16, i16* %0, i64 400
%136 = bitcast i16* %135 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %136
%137 = getelementptr inbounds i16, i16* %0, i64 408
%138 = bitcast i16* %137 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %138
%139 = getelementptr inbounds i16, i16* %0, i64 416
%140 = bitcast i16* %139 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %140
%141 = getelementptr inbounds i16, i16* %0, i64 424
%142 = bitcast i16* %141 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %142
%143 = getelementptr inbounds i16, i16* %0, i64 432
%144 = bitcast i16* %143 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %144
%145 = getelementptr inbounds i16, i16* %0, i64 440
%146 = bitcast i16* %145 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %146
%147 = getelementptr inbounds i16, i16* %0, i64 448
%148 = bitcast i16* %147 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %148
%149 = getelementptr inbounds i16, i16* %0, i64 456
%150 = bitcast i16* %149 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %150
%151 = getelementptr inbounds i16, i16* %0, i64 464
%152 = bitcast i16* %151 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %152
%153 = getelementptr inbounds i16, i16* %0, i64 472
%154 = bitcast i16* %153 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %154
%155 = getelementptr inbounds i16, i16* %0, i64 480
%156 = bitcast i16* %155 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %156
%157 = getelementptr inbounds i16, i16* %0, i64 488
%158 = bitcast i16* %157 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %158
%159 = getelementptr inbounds i16, i16* %0, i64 496
%160 = bitcast i16* %159 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %160
%161 = getelementptr inbounds i16, i16* %0, i64 504
%162 = bitcast i16* %161 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %162
%163 = getelementptr inbounds i16, i16* %0, i64 512
%164 = bitcast i16* %163 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %164
%165 = getelementptr inbounds i16, i16* %0, i64 520
%166 = bitcast i16* %165 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %166
%167 = getelementptr inbounds i16, i16* %0, i64 528
%168 = bitcast i16* %167 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %168
%169 = getelementptr inbounds i16, i16* %0, i64 536
%170 = bitcast i16* %169 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %170
%171 = getelementptr inbounds i16, i16* %0, i64 544
%172 = bitcast i16* %171 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %172
%173 = getelementptr inbounds i16, i16* %0, i64 552
%174 = bitcast i16* %173 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %174
%175 = getelementptr inbounds i16, i16* %0, i64 560
%176 = bitcast i16* %175 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %176
%177 = getelementptr inbounds i16, i16* %0, i64 568
%178 = bitcast i16* %177 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %178
%179 = getelementptr inbounds i16, i16* %0, i64 576
%180 = bitcast i16* %179 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %180
%181 = getelementptr inbounds i16, i16* %0, i64 584
%182 = bitcast i16* %181 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %182
%183 = getelementptr inbounds i16, i16* %0, i64 592
%184 = bitcast i16* %183 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %184
%185 = getelementptr inbounds i16, i16* %0, i64 600
%186 = bitcast i16* %185 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %186
%187 = getelementptr inbounds i16, i16* %0, i64 608
%188 = bitcast i16* %187 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %188
%189 = getelementptr inbounds i16, i16* %0, i64 616
%190 = bitcast i16* %189 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %190
%191 = getelementptr inbounds i16, i16* %0, i64 624
%192 = bitcast i16* %191 to <8 x i16>*
store <8 x i16> %33, <8 x i16>* %192
%193 = getelementptr inbounds i16, i16* %0, i64 632
%194 = bitcast i16* %193 to <8 x i16>*
store <8 x i16> %35, <8 x i16>* %194
%195 = insertelement <8 x i16> poison, i16 %1, i64 0
%196 = shufflevector <8 x i16> %195, <8 x i16> poison, <8 x i32> zeroinitializer
%197 = insertelement <8 x i16> poison, i16 %1, i64 0
%198 = shufflevector <8 x i16> %197, <8 x i16> poison, <8 x i32> zeroinitializer
br label %199
199: ; preds = %199, %31
%200 = phi i64 [ 0, %31 ], [ %226, %199 ]
%201 = add nuw nsw i64 %200, 20480
%202 = getelementptr inbounds i16, i16* %0, i64 %201
%203 = bitcast i16* %202 to <8 x i16>*
store <8 x i16> %196, <8 x i16>* %203
%204 = getelementptr inbounds i16, i16* %202, i64 8
%205 = bitcast i16* %204 to <8 x i16>*
store <8 x i16> %198, <8 x i16>* %205
%206 = add nuw nsw i64 %200, 20496
%207 = getelementptr inbounds i16, i16* %0, i64 %206
%208 = bitcast i16* %207 to <8 x i16>*
store <8 x i16> %196, <8 x i16>* %208
%209 = getelementptr inbounds i16, i16* %207, i64 8
%210 = bitcast i16* %209 to <8 x i16>*
store <8 x i16> %198, <8 x i16>* %210
%211 = add nuw nsw i64 %200, 20512
%212 = getelementptr inbounds i16, i16* %0, i64 %211
%213 = bitcast i16* %212 to <8 x i16>*
store <8 x i16> %196, <8 x i16>* %213
%214 = getelementptr inbounds i16, i16* %212, i64 8
%215 = bitcast i16* %214 to <8 x i16>*
store <8 x i16> %198, <8 x i16>* %215
%216 = add nuw nsw i64 %200, 20528
%217 = getelementptr inbounds i16, i16* %0, i64 %216
%218 = bitcast i16* %217 to <8 x i16>*
store <8 x i16> %196, <8 x i16>* %218
%219 = getelementptr inbounds i16, i16* %217, i64 8
%220 = bitcast i16* %219 to <8 x i16>*
store <8 x i16> %198, <8 x i16>* %220
%221 = add nuw nsw i64 %200, 20544
%222 = getelementptr inbounds i16, i16* %0, i64 %221
%223 = bitcast i16* %222 to <8 x i16>*
store <8 x i16> %196, <8 x i16>* %223
%224 = getelementptr inbounds i16, i16* %222, i64 8
%225 = bitcast i16* %224 to <8 x i16>*
store <8 x i16> %198, <8 x i16>* %225
%226 = add nuw nsw i64 %200, 80
%227 = icmp eq i64 %226, 640
br i1 %227, label %228, label %199
228: ; preds = %199
%229 = insertelement <8 x i16> poison, i16 %1, i64 0
%230 = shufflevector <8 x i16> %229, <8 x i16> poison, <8 x i32> zeroinitializer
%231 = insertelement <8 x i16> poison, i16 %1, i64 0
%232 = shufflevector <8 x i16> %231, <8 x i16> poison, <8 x i32> zeroinitializer
br label %233
233: ; preds = %233, %228
%234 = phi i64 [ 0, %228 ], [ %260, %233 ]
%235 = add nuw nsw i64 %234, 40960
%236 = getelementptr inbounds i16, i16* %0, i64 %235
%237 = bitcast i16* %236 to <8 x i16>*
store <8 x i16> %230, <8 x i16>* %237
%238 = getelementptr inbounds i16, i16* %236, i64 8
%239 = bitcast i16* %238 to <8 x i16>*
store <8 x i16> %232, <8 x i16>* %239
%240 = add nuw nsw i64 %234, 40976
%241 = getelementptr inbounds i16, i16* %0, i64 %240
%242 = bitcast i16* %241 to <8 x i16>*
store <8 x i16> %230, <8 x i16>* %242
%243 = getelementptr inbounds i16, i16* %241, i64 8
%244 = bitcast i16* %243 to <8 x i16>*
store <8 x i16> %232, <8 x i16>* %244
%245 = add nuw nsw i64 %234, 40992
%246 = getelementptr inbounds i16, i16* %0, i64 %245
%247 = bitcast i16* %246 to <8 x i16>*
store <8 x i16> %230, <8 x i16>* %247
%248 = getelementptr inbounds i16, i16* %246, i64 8
%249 = bitcast i16* %248 to <8 x i16>*
store <8 x i16> %232, <8 x i16>* %249
%250 = add nuw nsw i64 %234, 41008
%251 = getelementptr inbounds i16, i16* %0, i64 %250
%252 = bitcast i16* %251 to <8 x i16>*
store <8 x i16> %230, <8 x i16>* %252
%253 = getelementptr inbounds i16, i16* %251, i64 8
%254 = bitcast i16* %253 to <8 x i16>*
store <8 x i16> %232, <8 x i16>* %254
%255 = add nuw nsw i64 %234, 41024
%256 = getelementptr inbounds i16, i16* %0, i64 %255
%257 = bitcast i16* %256 to <8 x i16>*
store <8 x i16> %230, <8 x i16>* %257
%258 = getelementptr inbounds i16, i16* %256, i64 8
%259 = bitcast i16* %258 to <8 x i16>*
store <8 x i16> %232, <8 x i16>* %259
%260 = add nuw nsw i64 %234, 80
%261 = icmp eq i64 %260, 640
br i1 %261, label %262, label %233
262: ; preds = %233
%263 = insertelement <8 x i16> poison, i16 %1, i64 0
%264 = shufflevector <8 x i16> %263, <8 x i16> poison, <8 x i32> zeroinitializer
%265 = insertelement <8 x i16> poison, i16 %1, i64 0
%266 = shufflevector <8 x i16> %265, <8 x i16> poison, <8 x i32> zeroinitializer
br label %267
267: ; preds = %267, %262
%268 = phi i64 [ 0, %262 ], [ %294, %267 ]
%269 = add nuw nsw i64 %268, 61440
%270 = getelementptr inbounds i16, i16* %0, i64 %269
%271 = bitcast i16* %270 to <8 x i16>*
store <8 x i16> %264, <8 x i16>* %271
%272 = getelementptr inbounds i16, i16* %270, i64 8
%273 = bitcast i16* %272 to <8 x i16>*
store <8 x i16> %266, <8 x i16>* %273
%274 = add nuw nsw i64 %268, 61456
%275 = getelementptr inbounds i16, i16* %0, i64 %274
%276 = bitcast i16* %275 to <8 x i16>*
store <8 x i16> %264, <8 x i16>* %276
%277 = getelementptr inbounds i16, i16* %275, i64 8
%278 = bitcast i16* %277 to <8 x i16>*
store <8 x i16> %266, <8 x i16>* %278
%279 = add nuw nsw i64 %268, 61472
%280 = getelementptr inbounds i16, i16* %0, i64 %279
%281 = bitcast i16* %280 to <8 x i16>*
store <8 x i16> %264, <8 x i16>* %281
%282 = getelementptr inbounds i16, i16* %280, i64 8
%283 = bitcast i16* %282 to <8 x i16>*
store <8 x i16> %266, <8 x i16>* %283
%284 = add nuw nsw i64 %268, 61488
%285 = getelementptr inbounds i16, i16* %0, i64 %284
%286 = bitcast i16* %285 to <8 x i16>*
store <8 x i16> %264, <8 x i16>* %286
%287 = getelementptr inbounds i16, i16* %285, i64 8
%288 = bitcast i16* %287 to <8 x i16>*
store <8 x i16> %266, <8 x i16>* %288
%289 = add nuw nsw i64 %268, 61504
%290 = getelementptr inbounds i16, i16* %0, i64 %289
%291 = bitcast i16* %290 to <8 x i16>*
store <8 x i16> %264, <8 x i16>* %291
%292 = getelementptr inbounds i16, i16* %290, i64 8
%293 = bitcast i16* %292 to <8 x i16>*
store <8 x i16> %266, <8 x i16>* %293
%294 = add nuw nsw i64 %268, 80
%295 = icmp eq i64 %294, 640
br i1 %295, label %296, label %267
296: ; preds = %267
%297 = insertelement <8 x i16> poison, i16 %1, i64 0
%298 = shufflevector <8 x i16> %297, <8 x i16> poison, <8 x i32> zeroinitializer
%299 = insertelement <8 x i16> poison, i16 %1, i64 0
%300 = shufflevector <8 x i16> %299, <8 x i16> poison, <8 x i32> zeroinitializer
br label %301
301: ; preds = %301, %296
%302 = phi i64 [ 0, %296 ], [ %328, %301 ]
%303 = add nuw nsw i64 %302, 81920
%304 = getelementptr inbounds i16, i16* %0, i64 %303
%305 = bitcast i16* %304 to <8 x i16>*
store <8 x i16> %298, <8 x i16>* %305
%306 = getelementptr inbounds i16, i16* %304, i64 8
%307 = bitcast i16* %306 to <8 x i16>*
store <8 x i16> %300, <8 x i16>* %307
%308 = add nuw nsw i64 %302, 81936
%309 = getelementptr inbounds i16, i16* %0, i64 %308
%310 = bitcast i16* %309 to <8 x i16>*
store <8 x i16> %298, <8 x i16>* %310
%311 = getelementptr inbounds i16, i16* %309, i64 8
%312 = bitcast i16* %311 to <8 x i16>*
store <8 x i16> %300, <8 x i16>* %312
%313 = add nuw nsw i64 %302, 81952
%314 = getelementptr inbounds i16, i16* %0, i64 %313
%315 = bitcast i16* %314 to <8 x i16>*
store <8 x i16> %298, <8 x i16>* %315
%316 = getelementptr inbounds i16, i16* %314, i64 8
%317 = bitcast i16* %316 to <8 x i16>*
store <8 x i16> %300, <8 x i16>* %317
%318 = add nuw nsw i64 %302, 81968
%319 = getelementptr inbounds i16, i16* %0, i64 %318
%320 = bitcast i16* %319 to <8 x i16>*
store <8 x i16> %298, <8 x i16>* %320
%321 = getelementptr inbounds i16, i16* %319, i64 8
%322 = bitcast i16* %321 to <8 x i16>*
store <8 x i16> %300, <8 x i16>* %322
%323 = add nuw nsw i64 %302, 81984
%324 = getelementptr inbounds i16, i16* %0, i64 %323
%325 = bitcast i16* %324 to <8 x i16>*
store <8 x i16> %298, <8 x i16>* %325
%326 = getelementptr inbounds i16, i16* %324, i64 8
%327 = bitcast i16* %326 to <8 x i16>*
store <8 x i16> %300, <8 x i16>* %327
%328 = add nuw nsw i64 %302, 80
%329 = icmp eq i64 %328, 640
br i1 %329, label %330, label %301
330: ; preds = %301
%331 = insertelement <8 x i16> poison, i16 %1, i64 0
%332 = shufflevector <8 x i16> %331, <8 x i16> poison, <8 x i32> zeroinitializer
%333 = insertelement <8 x i16> poison, i16 %1, i64 0
%334 = shufflevector <8 x i16> %333, <8 x i16> poison, <8 x i32> zeroinitializer
br label %335
335: ; preds = %335, %330
%336 = phi i64 [ 0, %330 ], [ %362, %335 ]
%337 = add nuw nsw i64 %336, 102400
%338 = getelementptr inbounds i16, i16* %0, i64 %337
%339 = bitcast i16* %338 to <8 x i16>*
store <8 x i16> %332, <8 x i16>* %339
%340 = getelementptr inbounds i16, i16* %338, i64 8
%341 = bitcast i16* %340 to <8 x i16>*
store <8 x i16> %334, <8 x i16>* %341
%342 = add nuw nsw i64 %336, 102416
%343 = getelementptr inbounds i16, i16* %0, i64 %342
%344 = bitcast i16* %343 to <8 x i16>*
store <8 x i16> %332, <8 x i16>* %344
%345 = getelementptr inbounds i16, i16* %343, i64 8
%346 = bitcast i16* %345 to <8 x i16>*
store <8 x i16> %334, <8 x i16>* %346
%347 = add nuw nsw i64 %336, 102432
%348 = getelementptr inbounds i16, i16* %0, i64 %347
%349 = bitcast i16* %348 to <8 x i16>*
store <8 x i16> %332, <8 x i16>* %349
%350 = getelementptr inbounds i16, i16* %348, i64 8
%351 = bitcast i16* %350 to <8 x i16>*
store <8 x i16> %334, <8 x i16>* %351
%352 = add nuw nsw i64 %336, 102448
%353 = getelementptr inbounds i16, i16* %0, i64 %352
%354 = bitcast i16* %353 to <8 x i16>*
store <8 x i16> %332, <8 x i16>* %354
%355 = getelementptr inbounds i16, i16* %353, i64 8
%356 = bitcast i16* %355 to <8 x i16>*
store <8 x i16> %334, <8 x i16>* %356
%357 = add nuw nsw i64 %336, 102464
%358 = getelementptr inbounds i16, i16* %0, i64 %357
%359 = bitcast i16* %358 to <8 x i16>*
store <8 x i16> %332, <8 x i16>* %359
%360 = getelementptr inbounds i16, i16* %358, i64 8
%361 = bitcast i16* %360 to <8 x i16>*
store <8 x i16> %334, <8 x i16>* %361
%362 = add nuw nsw i64 %336, 80
%363 = icmp eq i64 %362, 640
br i1 %363, label %364, label %335
364: ; preds = %335
%365 = insertelement <8 x i16> poison, i16 %1, i64 0
%366 = shufflevector <8 x i16> %365, <8 x i16> poison, <8 x i32> zeroinitializer
%367 = insertelement <8 x i16> poison, i16 %1, i64 0
%368 = shufflevector <8 x i16> %367, <8 x i16> poison, <8 x i32> zeroinitializer
br label %369
369: ; preds = %369, %364
%370 = phi i64 [ 0, %364 ], [ %396, %369 ]
%371 = add nuw nsw i64 %370, 122880
%372 = getelementptr inbounds i16, i16* %0, i64 %371
%373 = bitcast i16* %372 to <8 x i16>*
store <8 x i16> %366, <8 x i16>* %373
%374 = getelementptr inbounds i16, i16* %372, i64 8
%375 = bitcast i16* %374 to <8 x i16>*
store <8 x i16> %368, <8 x i16>* %375
%376 = add nuw nsw i64 %370, 122896
%377 = getelementptr inbounds i16, i16* %0, i64 %376
%378 = bitcast i16* %377 to <8 x i16>*
store <8 x i16> %366, <8 x i16>* %378
%379 = getelementptr inbounds i16, i16* %377, i64 8
%380 = bitcast i16* %379 to <8 x i16>*
store <8 x i16> %368, <8 x i16>* %380
%381 = add nuw nsw i64 %370, 122912
%382 = getelementptr inbounds i16, i16* %0, i64 %381
%383 = bitcast i16* %382 to <8 x i16>*
store <8 x i16> %366, <8 x i16>* %383
%384 = getelementptr inbounds i16, i16* %382, i64 8
%385 = bitcast i16* %384 to <8 x i16>*
store <8 x i16> %368, <8 x i16>* %385
%386 = add nuw nsw i64 %370, 122928
%387 = getelementptr inbounds i16, i16* %0, i64 %386
%388 = bitcast i16* %387 to <8 x i16>*
store <8 x i16> %366, <8 x i16>* %388
%389 = getelementptr inbounds i16, i16* %387, i64 8
%390 = bitcast i16* %389 to <8 x i16>*
store <8 x i16> %368, <8 x i16>* %390
%391 = add nuw nsw i64 %370, 122944
%392 = getelementptr inbounds i16, i16* %0, i64 %391
%393 = bitcast i16* %392 to <8 x i16>*
store <8 x i16> %366, <8 x i16>* %393
%394 = getelementptr inbounds i16, i16* %392, i64 8
%395 = bitcast i16* %394 to <8 x i16>*
store <8 x i16> %368, <8 x i16>* %395
%396 = add nuw nsw i64 %370, 80
%397 = icmp eq i64 %396, 640
br i1 %397, label %398, label %369
398: ; preds = %369
%399 = insertelement <8 x i16> poison, i16 %1, i64 0
%400 = shufflevector <8 x i16> %399, <8 x i16> poison, <8 x i32> zeroinitializer
%401 = insertelement <8 x i16> poison, i16 %1, i64 0
%402 = shufflevector <8 x i16> %401, <8 x i16> poison, <8 x i32> zeroinitializer
br label %403
403: ; preds = %403, %398
%404 = phi i64 [ 0, %398 ], [ %430, %403 ]
%405 = add nuw nsw i64 %404, 143360
%406 = getelementptr inbounds i16, i16* %0, i64 %405
%407 = bitcast i16* %406 to <8 x i16>*
store <8 x i16> %400, <8 x i16>* %407
%408 = getelementptr inbounds i16, i16* %406, i64 8
%409 = bitcast i16* %408 to <8 x i16>*
store <8 x i16> %402, <8 x i16>* %409
%410 = add nuw nsw i64 %404, 143376
%411 = getelementptr inbounds i16, i16* %0, i64 %410
%412 = bitcast i16* %411 to <8 x i16>*
store <8 x i16> %400, <8 x i16>* %412
%413 = getelementptr inbounds i16, i16* %411, i64 8
%414 = bitcast i16* %413 to <8 x i16>*
store <8 x i16> %402, <8 x i16>* %414
%415 = add nuw nsw i64 %404, 143392
%416 = getelementptr inbounds i16, i16* %0, i64 %415
%417 = bitcast i16* %416 to <8 x i16>*
store <8 x i16> %400, <8 x i16>* %417
%418 = getelementptr inbounds i16, i16* %416, i64 8
%419 = bitcast i16* %418 to <8 x i16>*
store <8 x i16> %402, <8 x i16>* %419
%420 = add nuw nsw i64 %404, 143408
%421 = getelementptr inbounds i16, i16* %0, i64 %420
%422 = bitcast i16* %421 to <8 x i16>*
store <8 x i16> %400, <8 x i16>* %422
%423 = getelementptr inbounds i16, i16* %421, i64 8
%424 = bitcast i16* %423 to <8 x i16>*
store <8 x i16> %402, <8 x i16>* %424
%425 = add nuw nsw i64 %404, 143424
%426 = getelementptr inbounds i16, i16* %0, i64 %425
%427 = bitcast i16* %426 to <8 x i16>*
store <8 x i16> %400, <8 x i16>* %427
%428 = getelementptr inbounds i16, i16* %426, i64 8
%429 = bitcast i16* %428 to <8 x i16>*
store <8 x i16> %402, <8 x i16>* %429
%430 = add nuw nsw i64 %404, 80
%431 = icmp eq i64 %430, 640
br i1 %431, label %432, label %403
432: ; preds = %403
%433 = insertelement <8 x i16> poison, i16 %1, i64 0
%434 = shufflevector <8 x i16> %433, <8 x i16> poison, <8 x i32> zeroinitializer
%435 = insertelement <8 x i16> poison, i16 %1, i64 0
%436 = shufflevector <8 x i16> %435, <8 x i16> poison, <8 x i32> zeroinitializer
br label %437
437: ; preds = %437, %432
%438 = phi i64 [ 0, %432 ], [ %464, %437 ]
%439 = add nuw nsw i64 %438, 163840
%440 = getelementptr inbounds i16, i16* %0, i64 %439
%441 = bitcast i16* %440 to <8 x i16>*
store <8 x i16> %434, <8 x i16>* %441
%442 = getelementptr inbounds i16, i16* %440, i64 8
%443 = bitcast i16* %442 to <8 x i16>*
store <8 x i16> %436, <8 x i16>* %443
%444 = add nuw nsw i64 %438, 163856
%445 = getelementptr inbounds i16, i16* %0, i64 %444
%446 = bitcast i16* %445 to <8 x i16>*
store <8 x i16> %434, <8 x i16>* %446
%447 = getelementptr inbounds i16, i16* %445, i64 8
%448 = bitcast i16* %447 to <8 x i16>*
store <8 x i16> %436, <8 x i16>* %448
%449 = add nuw nsw i64 %438, 163872
%450 = getelementptr inbounds i16, i16* %0, i64 %449
%451 = bitcast i16* %450 to <8 x i16>*
store <8 x i16> %434, <8 x i16>* %451
%452 = getelementptr inbounds i16, i16* %450, i64 8
%453 = bitcast i16* %452 to <8 x i16>*
store <8 x i16> %436, <8 x i16>* %453
%454 = add nuw nsw i64 %438, 163888
%455 = getelementptr inbounds i16, i16* %0, i64 %454
%456 = bitcast i16* %455 to <8 x i16>*
store <8 x i16> %434, <8 x i16>* %456
%457 = getelementptr inbounds i16, i16* %455, i64 8
%458 = bitcast i16* %457 to <8 x i16>*
store <8 x i16> %436, <8 x i16>* %458
%459 = add nuw nsw i64 %438, 163904
%460 = getelementptr inbounds i16, i16* %0, i64 %459
%461 = bitcast i16* %460 to <8 x i16>*
store <8 x i16> %434, <8 x i16>* %461
%462 = getelementptr inbounds i16, i16* %460, i64 8
%463 = bitcast i16* %462 to <8 x i16>*
store <8 x i16> %436, <8 x i16>* %463
%464 = add nuw nsw i64 %438, 80
%465 = icmp eq i64 %464, 640
br i1 %465, label %466, label %437
466: ; preds = %437
%467 = insertelement <8 x i16> poison, i16 %1, i64 0
%468 = shufflevector <8 x i16> %467, <8 x i16> poison, <8 x i32> zeroinitializer
%469 = insertelement <8 x i16> poison, i16 %1, i64 0
%470 = shufflevector <8 x i16> %469, <8 x i16> poison, <8 x i32> zeroinitializer
br label %471
471: ; preds = %471, %466
%472 = phi i64 [ 0, %466 ], [ %498, %471 ]
%473 = add nuw nsw i64 %472, 184320
%474 = getelementptr inbounds i16, i16* %0, i64 %473
%475 = bitcast i16* %474 to <8 x i16>*
store <8 x i16> %468, <8 x i16>* %475
%476 = getelementptr inbounds i16, i16* %474, i64 8
%477 = bitcast i16* %476 to <8 x i16>*
store <8 x i16> %470, <8 x i16>* %477
%478 = add nuw nsw i64 %472, 184336
%479 = getelementptr inbounds i16, i16* %0, i64 %478
%480 = bitcast i16* %479 to <8 x i16>*
store <8 x i16> %468, <8 x i16>* %480
%481 = getelementptr inbounds i16, i16* %479, i64 8
%482 = bitcast i16* %481 to <8 x i16>*
store <8 x i16> %470, <8 x i16>* %482
%483 = add nuw nsw i64 %472, 184352
%484 = getelementptr inbounds i16, i16* %0, i64 %483
%485 = bitcast i16* %484 to <8 x i16>*
store <8 x i16> %468, <8 x i16>* %485
%486 = getelementptr inbounds i16, i16* %484, i64 8
%487 = bitcast i16* %486 to <8 x i16>*
store <8 x i16> %470, <8 x i16>* %487
%488 = add nuw nsw i64 %472, 184368
%489 = getelementptr inbounds i16, i16* %0, i64 %488
%490 = bitcast i16* %489 to <8 x i16>*
store <8 x i16> %468, <8 x i16>* %490
%491 = getelementptr inbounds i16, i16* %489, i64 8
%492 = bitcast i16* %491 to <8 x i16>*
store <8 x i16> %470, <8 x i16>* %492
%493 = add nuw nsw i64 %472, 184384
%494 = getelementptr inbounds i16, i16* %0, i64 %493
%495 = bitcast i16* %494 to <8 x i16>*
store <8 x i16> %468, <8 x i16>* %495
%496 = getelementptr inbounds i16, i16* %494, i64 8
%497 = bitcast i16* %496 to <8 x i16>*
store <8 x i16> %470, <8 x i16>* %497
%498 = add nuw nsw i64 %472, 80
%499 = icmp eq i64 %498, 640
br i1 %499, label %500, label %471
500: ; preds = %471
%501 = insertelement <8 x i16> poison, i16 %1, i64 0
%502 = shufflevector <8 x i16> %501, <8 x i16> poison, <8 x i32> zeroinitializer
%503 = insertelement <8 x i16> poison, i16 %1, i64 0
%504 = shufflevector <8 x i16> %503, <8 x i16> poison, <8 x i32> zeroinitializer
br label %505
505: ; preds = %505, %500
%506 = phi i64 [ 0, %500 ], [ %532, %505 ]
%507 = add nuw nsw i64 %506, 204800
%508 = getelementptr inbounds i16, i16* %0, i64 %507
%509 = bitcast i16* %508 to <8 x i16>*
store <8 x i16> %502, <8 x i16>* %509
%510 = getelementptr inbounds i16, i16* %508, i64 8
%511 = bitcast i16* %510 to <8 x i16>*
store <8 x i16> %504, <8 x i16>* %511
%512 = add nuw nsw i64 %506, 204816
%513 = getelementptr inbounds i16, i16* %0, i64 %512
%514 = bitcast i16* %513 to <8 x i16>*
store <8 x i16> %502, <8 x i16>* %514
%515 = getelementptr inbounds i16, i16* %513, i64 8
%516 = bitcast i16* %515 to <8 x i16>*
store <8 x i16> %504, <8 x i16>* %516
%517 = add nuw nsw i64 %506, 204832
%518 = getelementptr inbounds i16, i16* %0, i64 %517
%519 = bitcast i16* %518 to <8 x i16>*
store <8 x i16> %502, <8 x i16>* %519
%520 = getelementptr inbounds i16, i16* %518, i64 8
%521 = bitcast i16* %520 to <8 x i16>*
store <8 x i16> %504, <8 x i16>* %521
%522 = add nuw nsw i64 %506, 204848
%523 = getelementptr inbounds i16, i16* %0, i64 %522
%524 = bitcast i16* %523 to <8 x i16>*
store <8 x i16> %502, <8 x i16>* %524
%525 = getelementptr inbounds i16, i16* %523, i64 8
%526 = bitcast i16* %525 to <8 x i16>*
store <8 x i16> %504, <8 x i16>* %526
%527 = add nuw nsw i64 %506, 204864
%528 = getelementptr inbounds i16, i16* %0, i64 %527
%529 = bitcast i16* %528 to <8 x i16>*
store <8 x i16> %502, <8 x i16>* %529
%530 = getelementptr inbounds i16, i16* %528, i64 8
%531 = bitcast i16* %530 to <8 x i16>*
store <8 x i16> %504, <8 x i16>* %531
%532 = add nuw nsw i64 %506, 80
%533 = icmp eq i64 %532, 640
br i1 %533, label %534, label %505
534: ; preds = %505
%535 = insertelement <8 x i16> poison, i16 %1, i64 0
%536 = shufflevector <8 x i16> %535, <8 x i16> poison, <8 x i32> zeroinitializer
%537 = insertelement <8 x i16> poison, i16 %1, i64 0
%538 = shufflevector <8 x i16> %537, <8 x i16> poison, <8 x i32> zeroinitializer
br label %539
539: ; preds = %539, %534
%540 = phi i64 [ 0, %534 ], [ %566, %539 ]
%541 = add nuw nsw i64 %540, 225280
%542 = getelementptr inbounds i16, i16* %0, i64 %541
%543 = bitcast i16* %542 to <8 x i16>*
store <8 x i16> %536, <8 x i16>* %543
%544 = getelementptr inbounds i16, i16* %542, i64 8
%545 = bitcast i16* %544 to <8 x i16>*
store <8 x i16> %538, <8 x i16>* %545
%546 = add nuw nsw i64 %540, 225296
%547 = getelementptr inbounds i16, i16* %0, i64 %546
%548 = bitcast i16* %547 to <8 x i16>*
store <8 x i16> %536, <8 x i16>* %548
%549 = getelementptr inbounds i16, i16* %547, i64 8
%550 = bitcast i16* %549 to <8 x i16>*
store <8 x i16> %538, <8 x i16>* %550
%551 = add nuw nsw i64 %540, 225312
%552 = getelementptr inbounds i16, i16* %0, i64 %551
%553 = bitcast i16* %552 to <8 x i16>*
store <8 x i16> %536, <8 x i16>* %553
%554 = getelementptr inbounds i16, i16* %552, i64 8
%555 = bitcast i16* %554 to <8 x i16>*
store <8 x i16> %538, <8 x i16>* %555
%556 = add nuw nsw i64 %540, 225328
%557 = getelementptr inbounds i16, i16* %0, i64 %556
%558 = bitcast i16* %557 to <8 x i16>*
store <8 x i16> %536, <8 x i16>* %558
%559 = getelementptr inbounds i16, i16* %557, i64 8
%560 = bitcast i16* %559 to <8 x i16>*
store <8 x i16> %538, <8 x i16>* %560
%561 = add nuw nsw i64 %540, 225344
%562 = getelementptr inbounds i16, i16* %0, i64 %561
%563 = bitcast i16* %562 to <8 x i16>*
store <8 x i16> %536, <8 x i16>* %563
%564 = getelementptr inbounds i16, i16* %562, i64 8
%565 = bitcast i16* %564 to <8 x i16>*
store <8 x i16> %538, <8 x i16>* %565
%566 = add nuw nsw i64 %540, 80
%567 = icmp eq i64 %566, 640
br i1 %567, label %568, label %539
568: ; preds = %539
%569 = insertelement <8 x i16> poison, i16 %1, i64 0
%570 = shufflevector <8 x i16> %569, <8 x i16> poison, <8 x i32> zeroinitializer
%571 = insertelement <8 x i16> poison, i16 %1, i64 0
%572 = shufflevector <8 x i16> %571, <8 x i16> poison, <8 x i32> zeroinitializer
br label %573
573: ; preds = %573, %568
%574 = phi i64 [ 0, %568 ], [ %600, %573 ]
%575 = add nuw nsw i64 %574, 245760
%576 = getelementptr inbounds i16, i16* %0, i64 %575
%577 = bitcast i16* %576 to <8 x i16>*
store <8 x i16> %570, <8 x i16>* %577
%578 = getelementptr inbounds i16, i16* %576, i64 8
%579 = bitcast i16* %578 to <8 x i16>*
store <8 x i16> %572, <8 x i16>* %579
%580 = add nuw nsw i64 %574, 245776
%581 = getelementptr inbounds i16, i16* %0, i64 %580
%582 = bitcast i16* %581 to <8 x i16>*
store <8 x i16> %570, <8 x i16>* %582
%583 = getelementptr inbounds i16, i16* %581, i64 8
%584 = bitcast i16* %583 to <8 x i16>*
store <8 x i16> %572, <8 x i16>* %584
%585 = add nuw nsw i64 %574, 245792
%586 = getelementptr inbounds i16, i16* %0, i64 %585
%587 = bitcast i16* %586 to <8 x i16>*
store <8 x i16> %570, <8 x i16>* %587
%588 = getelementptr inbounds i16, i16* %586, i64 8
%589 = bitcast i16* %588 to <8 x i16>*
store <8 x i16> %572, <8 x i16>* %589
%590 = add nuw nsw i64 %574, 245808
%591 = getelementptr inbounds i16, i16* %0, i64 %590
%592 = bitcast i16* %591 to <8 x i16>*
store <8 x i16> %570, <8 x i16>* %592
%593 = getelementptr inbounds i16, i16* %591, i64 8
%594 = bitcast i16* %593 to <8 x i16>*
store <8 x i16> %572, <8 x i16>* %594
%595 = add nuw nsw i64 %574, 245824
%596 = getelementptr inbounds i16, i16* %0, i64 %595
%597 = bitcast i16* %596 to <8 x i16>*
store <8 x i16> %570, <8 x i16>* %597
%598 = getelementptr inbounds i16, i16* %596, i64 8
%599 = bitcast i16* %598 to <8 x i16>*
store <8 x i16> %572, <8 x i16>* %599
%600 = add nuw nsw i64 %574, 80
%601 = icmp eq i64 %600, 640
br i1 %601, label %602, label %573
602: ; preds = %573
%603 = insertelement <8 x i16> poison, i16 %1, i64 0
%604 = shufflevector <8 x i16> %603, <8 x i16> poison, <8 x i32> zeroinitializer
%605 = insertelement <8 x i16> poison, i16 %1, i64 0
%606 = shufflevector <8 x i16> %605, <8 x i16> poison, <8 x i32> zeroinitializer
br label %607
607: ; preds = %607, %602
%608 = phi i64 [ 0, %602 ], [ %634, %607 ]
%609 = add nuw nsw i64 %608, 266240
%610 = getelementptr inbounds i16, i16* %0, i64 %609
%611 = bitcast i16* %610 to <8 x i16>*
store <8 x i16> %604, <8 x i16>* %611
%612 = getelementptr inbounds i16, i16* %610, i64 8
%613 = bitcast i16* %612 to <8 x i16>*
store <8 x i16> %606, <8 x i16>* %613
%614 = add nuw nsw i64 %608, 266256
%615 = getelementptr inbounds i16, i16* %0, i64 %614
%616 = bitcast i16* %615 to <8 x i16>*
store <8 x i16> %604, <8 x i16>* %616
%617 = getelementptr inbounds i16, i16* %615, i64 8
%618 = bitcast i16* %617 to <8 x i16>*
store <8 x i16> %606, <8 x i16>* %618
%619 = add nuw nsw i64 %608, 266272
%620 = getelementptr inbounds i16, i16* %0, i64 %619
%621 = bitcast i16* %620 to <8 x i16>*
store <8 x i16> %604, <8 x i16>* %621
%622 = getelementptr inbounds i16, i16* %620, i64 8
%623 = bitcast i16* %622 to <8 x i16>*
store <8 x i16> %606, <8 x i16>* %623
%624 = add nuw nsw i64 %608, 266288
%625 = getelementptr inbounds i16, i16* %0, i64 %624
%626 = bitcast i16* %625 to <8 x i16>*
store <8 x i16> %604, <8 x i16>* %626
%627 = getelementptr inbounds i16, i16* %625, i64 8
%628 = bitcast i16* %627 to <8 x i16>*
store <8 x i16> %606, <8 x i16>* %628
%629 = add nuw nsw i64 %608, 266304
%630 = getelementptr inbounds i16, i16* %0, i64 %629
%631 = bitcast i16* %630 to <8 x i16>*
store <8 x i16> %604, <8 x i16>* %631
%632 = getelementptr inbounds i16, i16* %630, i64 8
%633 = bitcast i16* %632 to <8 x i16>*
store <8 x i16> %606, <8 x i16>* %633
%634 = add nuw nsw i64 %608, 80
%635 = icmp eq i64 %634, 640
br i1 %635, label %636, label %607
636: ; preds = %607
%637 = insertelement <8 x i16> poison, i16 %1, i64 0
%638 = shufflevector <8 x i16> %637, <8 x i16> poison, <8 x i32> zeroinitializer
%639 = insertelement <8 x i16> poison, i16 %1, i64 0
%640 = shufflevector <8 x i16> %639, <8 x i16> poison, <8 x i32> zeroinitializer
br label %641
641: ; preds = %641, %636
%642 = phi i64 [ 0, %636 ], [ %668, %641 ]
%643 = add nuw nsw i64 %642, 286720
%644 = getelementptr inbounds i16, i16* %0, i64 %643
%645 = bitcast i16* %644 to <8 x i16>*
store <8 x i16> %638, <8 x i16>* %645
%646 = getelementptr inbounds i16, i16* %644, i64 8
%647 = bitcast i16* %646 to <8 x i16>*
store <8 x i16> %640, <8 x i16>* %647
%648 = add nuw nsw i64 %642, 286736
%649 = getelementptr inbounds i16, i16* %0, i64 %648
%650 = bitcast i16* %649 to <8 x i16>*
store <8 x i16> %638, <8 x i16>* %650
%651 = getelementptr inbounds i16, i16* %649, i64 8
%652 = bitcast i16* %651 to <8 x i16>*
store <8 x i16> %640, <8 x i16>* %652
%653 = add nuw nsw i64 %642, 286752
%654 = getelementptr inbounds i16, i16* %0, i64 %653
%655 = bitcast i16* %654 to <8 x i16>*
store <8 x i16> %638, <8 x i16>* %655
%656 = getelementptr inbounds i16, i16* %654, i64 8
%657 = bitcast i16* %656 to <8 x i16>*
store <8 x i16> %640, <8 x i16>* %657
%658 = add nuw nsw i64 %642, 286768
%659 = getelementptr inbounds i16, i16* %0, i64 %658
%660 = bitcast i16* %659 to <8 x i16>*
store <8 x i16> %638, <8 x i16>* %660
%661 = getelementptr inbounds i16, i16* %659, i64 8
%662 = bitcast i16* %661 to <8 x i16>*
store <8 x i16> %640, <8 x i16>* %662
%663 = add nuw nsw i64 %642, 286784
%664 = getelementptr inbounds i16, i16* %0, i64 %663
%665 = bitcast i16* %664 to <8 x i16>*
store <8 x i16> %638, <8 x i16>* %665
%666 = getelementptr inbounds i16, i16* %664, i64 8
%667 = bitcast i16* %666 to <8 x i16>*
store <8 x i16> %640, <8 x i16>* %667
%668 = add nuw nsw i64 %642, 80
%669 = icmp eq i64 %668, 640
br i1 %669, label %670, label %641
670: ; preds = %641
ret void
}