void foo(double *p) {
  int i;
  for (i = -20000; i < 200000; i += 40) {
    p[i + 0] = 1.0;
    p[i + 1] = 1.0;
    p[i + 2] = 1.0;
    p[i + 3] = 1.0;
    p[i + 4] = 1.0;
    p[i + 5] = 1.0;
    p[i + 6] = 1.0;
    p[i + 7] = 1.0;
    p[i + 8] = 1.0;
    p[i + 9] = 1.0;
    p[i + 10] = 1.0;
    p[i + 11] = 1.0;
    p[i + 12] = 1.0;
    p[i + 13] = 1.0;
    p[i + 14] = 1.0;
    p[i + 15] = 1.0;
    p[i + 16] = 1.0;
    p[i + 17] = 1.0;
    p[i + 18] = 1.0;
    p[i + 19] = 1.0;
    p[i + 20] = 1.0;
    p[i + 21] = 1.0;
    p[i + 22] = 1.0;
    p[i + 23] = 1.0;
    p[i + 24] = 1.0;
    p[i + 25] = 1.0;
    p[i + 26] = 1.0;
    p[i + 27] = 1.0;
    p[i + 28] = 1.0;
    p[i + 29] = 1.0;
    p[i + 30] = 1.0;
    p[i + 31] = 1.0;
    p[i + 32] = 1.0;
    p[i + 33] = 1.0;
    p[i + 34] = 1.0;
    p[i + 35] = 1.0;
    p[i + 36] = 1.0;
    p[i + 37] = 1.0;
    p[i + 38] = 1.0;
    p[i + 39] = 1.0;
  }
}


x86 assembly (clang, -O0):
<foo>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
movl   $0xffffb1e0,-0xc(%rbp)
cmpl   $0x30d40,-0xc(%rbp)
jge    153a <foo+0x43a>
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x0,%ecx
movslq %ecx,%rcx
movsd  0xecf(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  0xeb5(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
movsd  0xe9b(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
movsd  0xe81(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x4,%ecx
movslq %ecx,%rcx
movsd  0xe67(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x5,%ecx
movslq %ecx,%rcx
movsd  0xe4d(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x6,%ecx
movslq %ecx,%rcx
movsd  0xe33(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x7,%ecx
movslq %ecx,%rcx
movsd  0xe19(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x8,%ecx
movslq %ecx,%rcx
movsd  0xdff(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x9,%ecx
movslq %ecx,%rcx
movsd  0xde5(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0xa,%ecx
movslq %ecx,%rcx
movsd  0xdcb(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0xb,%ecx
movslq %ecx,%rcx
movsd  0xdb1(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0xc,%ecx
movslq %ecx,%rcx
movsd  0xd97(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0xd,%ecx
movslq %ecx,%rcx
movsd  0xd7d(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0xe,%ecx
movslq %ecx,%rcx
movsd  0xd63(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0xf,%ecx
movslq %ecx,%rcx
movsd  0xd49(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x10,%ecx
movslq %ecx,%rcx
movsd  0xd2f(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x11,%ecx
movslq %ecx,%rcx
movsd  0xd15(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x12,%ecx
movslq %ecx,%rcx
movsd  0xcfb(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x13,%ecx
movslq %ecx,%rcx
movsd  0xce1(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x14,%ecx
movslq %ecx,%rcx
movsd  0xcc7(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x15,%ecx
movslq %ecx,%rcx
movsd  0xcad(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x16,%ecx
movslq %ecx,%rcx
movsd  0xc93(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x17,%ecx
movslq %ecx,%rcx
movsd  0xc79(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x18,%ecx
movslq %ecx,%rcx
movsd  0xc5f(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x19,%ecx
movslq %ecx,%rcx
movsd  0xc45(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x1a,%ecx
movslq %ecx,%rcx
movsd  0xc2b(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x1b,%ecx
movslq %ecx,%rcx
movsd  0xc11(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x1c,%ecx
movslq %ecx,%rcx
movsd  0xbf7(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x1d,%ecx
movslq %ecx,%rcx
movsd  0xbdd(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x1e,%ecx
movslq %ecx,%rcx
movsd  0xbc3(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x1f,%ecx
movslq %ecx,%rcx
movsd  0xba9(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x20,%ecx
movslq %ecx,%rcx
movsd  0xb8f(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x21,%ecx
movslq %ecx,%rcx
movsd  0xb75(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x22,%ecx
movslq %ecx,%rcx
movsd  0xb5b(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x23,%ecx
movslq %ecx,%rcx
movsd  0xb41(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x24,%ecx
movslq %ecx,%rcx
movsd  0xb27(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x25,%ecx
movslq %ecx,%rcx
movsd  0xb0d(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x26,%ecx
movslq %ecx,%rcx
movsd  0xaf3(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x8(%rbp),%rax
mov    -0xc(%rbp),%ecx
add    $0x27,%ecx
movslq %ecx,%rcx
movsd  0xad9(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0xc(%rbp),%eax
add    $0x28,%eax
mov    %eax,-0xc(%rbp)
jmp    110f <foo+0xf>
pop    %rbp
ret

x86 assembly (clang, -O2):
<foo>:
mov    $0xffffffffffffb1b8,%rax
movaps 0xef2(%rip),%xmm0
xchg   %ax,%ax
movups %xmm0,0x140(%rdi,%rax,8)
movups %xmm0,0x150(%rdi,%rax,8)
movups %xmm0,0x160(%rdi,%rax,8)
movups %xmm0,0x170(%rdi,%rax,8)
movups %xmm0,0x180(%rdi,%rax,8)
movups %xmm0,0x190(%rdi,%rax,8)
movups %xmm0,0x1a0(%rdi,%rax,8)
movups %xmm0,0x1b0(%rdi,%rax,8)
movups %xmm0,0x1c0(%rdi,%rax,8)
movups %xmm0,0x1d0(%rdi,%rax,8)
movups %xmm0,0x1e0(%rdi,%rax,8)
movups %xmm0,0x1f0(%rdi,%rax,8)
movups %xmm0,0x200(%rdi,%rax,8)
movups %xmm0,0x210(%rdi,%rax,8)
movups %xmm0,0x220(%rdi,%rax,8)
movups %xmm0,0x230(%rdi,%rax,8)
movups %xmm0,0x240(%rdi,%rax,8)
movups %xmm0,0x250(%rdi,%rax,8)
movups %xmm0,0x260(%rdi,%rax,8)
movups %xmm0,0x270(%rdi,%rax,8)
add    $0x28,%rax
cmp    $0x30d18,%rax
jl     1110 <foo+0x10>
ret

LLVM IR (-O0):
define void @foo(double* %0) {
%2 = alloca double*
%3 = alloca i32
store double* %0, double** %2
store i32 -20000, i32* %3
br label %4
4: ; preds = %208, %1
%5 = load i32, i32* %3
%6 = icmp slt i32 %5, 200000
br i1 %6, label %7, label %211
7: ; preds = %4
%8 = load double*, double** %2
%9 = load i32, i32* %3
%10 = add nsw i32 %9, 0
%11 = sext i32 %10 to i64
%12 = getelementptr inbounds double, double* %8, i64 %11
store double 1.000000e+00, double* %12
%13 = load double*, double** %2
%14 = load i32, i32* %3
%15 = add nsw i32 %14, 1
%16 = sext i32 %15 to i64
%17 = getelementptr inbounds double, double* %13, i64 %16
store double 1.000000e+00, double* %17
%18 = load double*, double** %2
%19 = load i32, i32* %3
%20 = add nsw i32 %19, 2
%21 = sext i32 %20 to i64
%22 = getelementptr inbounds double, double* %18, i64 %21
store double 1.000000e+00, double* %22
%23 = load double*, double** %2
%24 = load i32, i32* %3
%25 = add nsw i32 %24, 3
%26 = sext i32 %25 to i64
%27 = getelementptr inbounds double, double* %23, i64 %26
store double 1.000000e+00, double* %27
%28 = load double*, double** %2
%29 = load i32, i32* %3
%30 = add nsw i32 %29, 4
%31 = sext i32 %30 to i64
%32 = getelementptr inbounds double, double* %28, i64 %31
store double 1.000000e+00, double* %32
%33 = load double*, double** %2
%34 = load i32, i32* %3
%35 = add nsw i32 %34, 5
%36 = sext i32 %35 to i64
%37 = getelementptr inbounds double, double* %33, i64 %36
store double 1.000000e+00, double* %37
%38 = load double*, double** %2
%39 = load i32, i32* %3
%40 = add nsw i32 %39, 6
%41 = sext i32 %40 to i64
%42 = getelementptr inbounds double, double* %38, i64 %41
store double 1.000000e+00, double* %42
%43 = load double*, double** %2
%44 = load i32, i32* %3
%45 = add nsw i32 %44, 7
%46 = sext i32 %45 to i64
%47 = getelementptr inbounds double, double* %43, i64 %46
store double 1.000000e+00, double* %47
%48 = load double*, double** %2
%49 = load i32, i32* %3
%50 = add nsw i32 %49, 8
%51 = sext i32 %50 to i64
%52 = getelementptr inbounds double, double* %48, i64 %51
store double 1.000000e+00, double* %52
%53 = load double*, double** %2
%54 = load i32, i32* %3
%55 = add nsw i32 %54, 9
%56 = sext i32 %55 to i64
%57 = getelementptr inbounds double, double* %53, i64 %56
store double 1.000000e+00, double* %57
%58 = load double*, double** %2
%59 = load i32, i32* %3
%60 = add nsw i32 %59, 10
%61 = sext i32 %60 to i64
%62 = getelementptr inbounds double, double* %58, i64 %61
store double 1.000000e+00, double* %62
%63 = load double*, double** %2
%64 = load i32, i32* %3
%65 = add nsw i32 %64, 11
%66 = sext i32 %65 to i64
%67 = getelementptr inbounds double, double* %63, i64 %66
store double 1.000000e+00, double* %67
%68 = load double*, double** %2
%69 = load i32, i32* %3
%70 = add nsw i32 %69, 12
%71 = sext i32 %70 to i64
%72 = getelementptr inbounds double, double* %68, i64 %71
store double 1.000000e+00, double* %72
%73 = load double*, double** %2
%74 = load i32, i32* %3
%75 = add nsw i32 %74, 13
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds double, double* %73, i64 %76
store double 1.000000e+00, double* %77
%78 = load double*, double** %2
%79 = load i32, i32* %3
%80 = add nsw i32 %79, 14
%81 = sext i32 %80 to i64
%82 = getelementptr inbounds double, double* %78, i64 %81
store double 1.000000e+00, double* %82
%83 = load double*, double** %2
%84 = load i32, i32* %3
%85 = add nsw i32 %84, 15
%86 = sext i32 %85 to i64
%87 = getelementptr inbounds double, double* %83, i64 %86
store double 1.000000e+00, double* %87
%88 = load double*, double** %2
%89 = load i32, i32* %3
%90 = add nsw i32 %89, 16
%91 = sext i32 %90 to i64
%92 = getelementptr inbounds double, double* %88, i64 %91
store double 1.000000e+00, double* %92
%93 = load double*, double** %2
%94 = load i32, i32* %3
%95 = add nsw i32 %94, 17
%96 = sext i32 %95 to i64
%97 = getelementptr inbounds double, double* %93, i64 %96
store double 1.000000e+00, double* %97
%98 = load double*, double** %2
%99 = load i32, i32* %3
%100 = add nsw i32 %99, 18
%101 = sext i32 %100 to i64
%102 = getelementptr inbounds double, double* %98, i64 %101
store double 1.000000e+00, double* %102
%103 = load double*, double** %2
%104 = load i32, i32* %3
%105 = add nsw i32 %104, 19
%106 = sext i32 %105 to i64
%107 = getelementptr inbounds double, double* %103, i64 %106
store double 1.000000e+00, double* %107
%108 = load double*, double** %2
%109 = load i32, i32* %3
%110 = add nsw i32 %109, 20
%111 = sext i32 %110 to i64
%112 = getelementptr inbounds double, double* %108, i64 %111
store double 1.000000e+00, double* %112
%113 = load double*, double** %2
%114 = load i32, i32* %3
%115 = add nsw i32 %114, 21
%116 = sext i32 %115 to i64
%117 = getelementptr inbounds double, double* %113, i64 %116
store double 1.000000e+00, double* %117
%118 = load double*, double** %2
%119 = load i32, i32* %3
%120 = add nsw i32 %119, 22
%121 = sext i32 %120 to i64
%122 = getelementptr inbounds double, double* %118, i64 %121
store double 1.000000e+00, double* %122
%123 = load double*, double** %2
%124 = load i32, i32* %3
%125 = add nsw i32 %124, 23
%126 = sext i32 %125 to i64
%127 = getelementptr inbounds double, double* %123, i64 %126
store double 1.000000e+00, double* %127
%128 = load double*, double** %2
%129 = load i32, i32* %3
%130 = add nsw i32 %129, 24
%131 = sext i32 %130 to i64
%132 = getelementptr inbounds double, double* %128, i64 %131
store double 1.000000e+00, double* %132
%133 = load double*, double** %2
%134 = load i32, i32* %3
%135 = add nsw i32 %134, 25
%136 = sext i32 %135 to i64
%137 = getelementptr inbounds double, double* %133, i64 %136
store double 1.000000e+00, double* %137
%138 = load double*, double** %2
%139 = load i32, i32* %3
%140 = add nsw i32 %139, 26
%141 = sext i32 %140 to i64
%142 = getelementptr inbounds double, double* %138, i64 %141
store double 1.000000e+00, double* %142
%143 = load double*, double** %2
%144 = load i32, i32* %3
%145 = add nsw i32 %144, 27
%146 = sext i32 %145 to i64
%147 = getelementptr inbounds double, double* %143, i64 %146
store double 1.000000e+00, double* %147
%148 = load double*, double** %2
%149 = load i32, i32* %3
%150 = add nsw i32 %149, 28
%151 = sext i32 %150 to i64
%152 = getelementptr inbounds double, double* %148, i64 %151
store double 1.000000e+00, double* %152
%153 = load double*, double** %2
%154 = load i32, i32* %3
%155 = add nsw i32 %154, 29
%156 = sext i32 %155 to i64
%157 = getelementptr inbounds double, double* %153, i64 %156
store double 1.000000e+00, double* %157
%158 = load double*, double** %2
%159 = load i32, i32* %3
%160 = add nsw i32 %159, 30
%161 = sext i32 %160 to i64
%162 = getelementptr inbounds double, double* %158, i64 %161
store double 1.000000e+00, double* %162
%163 = load double*, double** %2
%164 = load i32, i32* %3
%165 = add nsw i32 %164, 31
%166 = sext i32 %165 to i64
%167 = getelementptr inbounds double, double* %163, i64 %166
store double 1.000000e+00, double* %167
%168 = load double*, double** %2
%169 = load i32, i32* %3
%170 = add nsw i32 %169, 32
%171 = sext i32 %170 to i64
%172 = getelementptr inbounds double, double* %168, i64 %171
store double 1.000000e+00, double* %172
%173 = load double*, double** %2
%174 = load i32, i32* %3
%175 = add nsw i32 %174, 33
%176 = sext i32 %175 to i64
%177 = getelementptr inbounds double, double* %173, i64 %176
store double 1.000000e+00, double* %177
%178 = load double*, double** %2
%179 = load i32, i32* %3
%180 = add nsw i32 %179, 34
%181 = sext i32 %180 to i64
%182 = getelementptr inbounds double, double* %178, i64 %181
store double 1.000000e+00, double* %182
%183 = load double*, double** %2
%184 = load i32, i32* %3
%185 = add nsw i32 %184, 35
%186 = sext i32 %185 to i64
%187 = getelementptr inbounds double, double* %183, i64 %186
store double 1.000000e+00, double* %187
%188 = load double*, double** %2
%189 = load i32, i32* %3
%190 = add nsw i32 %189, 36
%191 = sext i32 %190 to i64
%192 = getelementptr inbounds double, double* %188, i64 %191
store double 1.000000e+00, double* %192
%193 = load double*, double** %2
%194 = load i32, i32* %3
%195 = add nsw i32 %194, 37
%196 = sext i32 %195 to i64
%197 = getelementptr inbounds double, double* %193, i64 %196
store double 1.000000e+00, double* %197
%198 = load double*, double** %2
%199 = load i32, i32* %3
%200 = add nsw i32 %199, 38
%201 = sext i32 %200 to i64
%202 = getelementptr inbounds double, double* %198, i64 %201
store double 1.000000e+00, double* %202
%203 = load double*, double** %2
%204 = load i32, i32* %3
%205 = add nsw i32 %204, 39
%206 = sext i32 %205 to i64
%207 = getelementptr inbounds double, double* %203, i64 %206
store double 1.000000e+00, double* %207
br label %208
208: ; preds = %7
%209 = load i32, i32* %3
%210 = add nsw i32 %209, 40
store i32 %210, i32* %3
br label %4
211: ; preds = %4
ret void
}

LLVM IR (-O2):
define void @foo(double* writeonly %0) {
br label %2
2: ; preds = %1, %2
%3 = phi i64 [ -20000, %1 ], [ %63, %2 ]
%4 = getelementptr inbounds double, double* %0, i64 %3
%5 = bitcast double* %4 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %5
%6 = or i64 %3, 2
%7 = getelementptr inbounds double, double* %0, i64 %6
%8 = bitcast double* %7 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %8
%9 = or i64 %3, 4
%10 = getelementptr inbounds double, double* %0, i64 %9
%11 = bitcast double* %10 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %11
%12 = or i64 %3, 6
%13 = getelementptr inbounds double, double* %0, i64 %12
%14 = bitcast double* %13 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %14
%15 = add nsw i64 %3, 8
%16 = getelementptr inbounds double, double* %0, i64 %15
%17 = bitcast double* %16 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %17
%18 = add nsw i64 %3, 10
%19 = getelementptr inbounds double, double* %0, i64 %18
%20 = bitcast double* %19 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %20
%21 = add nsw i64 %3, 12
%22 = getelementptr inbounds double, double* %0, i64 %21
%23 = bitcast double* %22 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %23
%24 = add nsw i64 %3, 14
%25 = getelementptr inbounds double, double* %0, i64 %24
%26 = bitcast double* %25 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %26
%27 = add nsw i64 %3, 16
%28 = getelementptr inbounds double, double* %0, i64 %27
%29 = bitcast double* %28 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %29
%30 = add nsw i64 %3, 18
%31 = getelementptr inbounds double, double* %0, i64 %30
%32 = bitcast double* %31 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %32
%33 = add nsw i64 %3, 20
%34 = getelementptr inbounds double, double* %0, i64 %33
%35 = bitcast double* %34 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %35
%36 = add nsw i64 %3, 22
%37 = getelementptr inbounds double, double* %0, i64 %36
%38 = bitcast double* %37 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %38
%39 = add nsw i64 %3, 24
%40 = getelementptr inbounds double, double* %0, i64 %39
%41 = bitcast double* %40 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %41
%42 = add nsw i64 %3, 26
%43 = getelementptr inbounds double, double* %0, i64 %42
%44 = bitcast double* %43 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %44
%45 = add nsw i64 %3, 28
%46 = getelementptr inbounds double, double* %0, i64 %45
%47 = bitcast double* %46 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %47
%48 = add nsw i64 %3, 30
%49 = getelementptr inbounds double, double* %0, i64 %48
%50 = bitcast double* %49 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %50
%51 = add nsw i64 %3, 32
%52 = getelementptr inbounds double, double* %0, i64 %51
%53 = bitcast double* %52 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %53
%54 = add nsw i64 %3, 34
%55 = getelementptr inbounds double, double* %0, i64 %54
%56 = bitcast double* %55 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %56
%57 = add nsw i64 %3, 36
%58 = getelementptr inbounds double, double* %0, i64 %57
%59 = bitcast double* %58 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %59
%60 = add nsw i64 %3, 38
%61 = getelementptr inbounds double, double* %0, i64 %60
%62 = bitcast double* %61 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %62
%63 = add nsw i64 %3, 40
%64 = icmp slt i64 %3, 199960
br i1 %64, label %2, label %65
65: ; preds = %2
ret void
}