double **stochasticMatrix(double **m, double dampfac, int dimension) {
  int i, j, k;
  int sum;
  for (i = 0; i < dimension; i++) {
    sum = 0;
    for (j = 0; j < dimension; j++) {
      sum += m[i][j];
      if (j == dimension - 1) {
        for (k = 0; k < dimension; k++) {
          if (m[i][k] == 1.00)
            m[i][k] /= sum;
        }
      }
    }
  }
  for (i = 0; i < dimension; i++) {
    for (j = 0; j < dimension; j++) {
      m[i][j] = (((1 - dampfac) * m[i][j]) + (dampfac / dimension));
    }
  }
  return (m);
}


x86 assembly (clang, -O0):
<stochasticMatrix>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
movsd  %xmm0,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1214 <stochasticMatrix+0x114>
movl   $0x0,-0x24(%rbp)
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1201 <stochasticMatrix+0x101>
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x1c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
cvtsi2sdl -0x24(%rbp),%xmm0
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0x24(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0x14(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jne    11ee <stochasticMatrix+0xee>
movl   $0x0,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    11e9 <stochasticMatrix+0xe9>
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0xe5d(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    11d6 <stochasticMatrix+0xd6>
jp     11d6 <stochasticMatrix+0xd6>
cvtsi2sdl -0x24(%rbp),%xmm1
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
jmp    11db <stochasticMatrix+0xdb>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    117a <stochasticMatrix+0x7a>
jmp    11ee <stochasticMatrix+0xee>
jmp    11f3 <stochasticMatrix+0xf3>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1131 <stochasticMatrix+0x31>
jmp    1206 <stochasticMatrix+0x106>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1117 <stochasticMatrix+0x17>
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    12a8 <stochasticMatrix+0x1a8>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1295 <stochasticMatrix+0x195>
movsd  0xdbe(%rip),%xmm0
subsd  -0x10(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x1c(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0x10(%rbp),%xmm1
cvtsi2sdl -0x14(%rbp),%xmm3
divsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x1c(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    122e <stochasticMatrix+0x12e>
jmp    129a <stochasticMatrix+0x19a>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    121b <stochasticMatrix+0x11b>
mov    -0x8(%rbp),%rax
pop    %rbp
ret

x86 assembly (clang, -O2):
<stochasticMatrix>:
push   %r14
push   %rbx
mov    %rdi,%rax
test   %esi,%esi
jle    131a <stochasticMatrix+0x21a>
lea    -0x1(%rsi),%r9d
mov    %esi,%r14d
mov    %r14d,%edi
and    $0xfffffffe,%edi
xor    %r8d,%r8d
movsd  0xeda(%rip),%xmm1
jmp    113d <stochasticMatrix+0x3d>
nopl   0x0(%rax,%rax,1)
add    $0x1,%r8
cmp    %r14,%r8
je     11e1 <stochasticMatrix+0xe1>
mov    (%rax,%r8,8),%rcx
xor    %ebx,%ebx
xor    %r10d,%r10d
jmp    1159 <stochasticMatrix+0x59>
nopl   0x0(%rax,%rax,1)
add    $0x1,%rbx
cmp    %r14,%rbx
je     1130 <stochasticMatrix+0x30>
xorps  %xmm2,%xmm2
cvtsi2sd %r10d,%xmm2
addsd  (%rcx,%rbx,8),%xmm2
cvttsd2si %xmm2,%r10d
cmp    %r9,%rbx
jne    1150 <stochasticMatrix+0x50>
xorps  %xmm3,%xmm3
cvtsi2sd %r10d,%xmm3
movapd %xmm1,%xmm2
divsd  %xmm3,%xmm2
xor    %edx,%edx
cmp    $0x1,%esi
jne    11b9 <stochasticMatrix+0xb9>
test   $0x1,%r14b
je     1150 <stochasticMatrix+0x50>
movsd  (%rcx,%rdx,8),%xmm3
ucomisd %xmm1,%xmm3
jne    1150 <stochasticMatrix+0x50>
jp     1150 <stochasticMatrix+0x50>
movsd  %xmm2,(%rcx,%rdx,8)
jmp    1150 <stochasticMatrix+0x50>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
add    $0x2,%rdx
cmp    %rdx,%rdi
je     1187 <stochasticMatrix+0x87>
movsd  (%rcx,%rdx,8),%xmm3
ucomisd %xmm1,%xmm3
jne    11cb <stochasticMatrix+0xcb>
jp     11cb <stochasticMatrix+0xcb>
movsd  %xmm2,(%rcx,%rdx,8)
movsd  0x8(%rcx,%rdx,8),%xmm3
ucomisd %xmm1,%xmm3
jne    11b0 <stochasticMatrix+0xb0>
jp     11b0 <stochasticMatrix+0xb0>
movsd  %xmm2,0x8(%rcx,%rdx,8)
jmp    11b0 <stochasticMatrix+0xb0>
test   %esi,%esi
jle    131a <stochasticMatrix+0x21a>
subsd  %xmm0,%xmm1
xorps  %xmm2,%xmm2
cvtsi2sd %esi,%xmm2
divsd  %xmm2,%xmm0
mov    %r14d,%r11d
and    $0xfffffffc,%r11d
lea    -0x4(%r11),%r8
mov    %r8,%r10
shr    $0x2,%r10
add    $0x1,%r10
movapd %xmm1,%xmm2
unpcklpd %xmm1,%xmm2
movapd %xmm0,%xmm3
unpcklpd %xmm0,%xmm3
mov    %r10,%r9
and    $0xfffffffffffffffe,%r9
xor    %edi,%edi
jmp    123d <stochasticMatrix+0x13d>
nopl   0x0(%rax)
add    $0x1,%rdi
cmp    %r14,%rdi
je     131a <stochasticMatrix+0x21a>
mov    (%rax,%rdi,8),%rdx
cmp    $0x4,%esi
jae    1250 <stochasticMatrix+0x150>
xor    %ecx,%ecx
jmp    12f0 <stochasticMatrix+0x1f0>
nopl   (%rax)
test   %r8,%r8
je     1310 <stochasticMatrix+0x210>
mov    %r9,%rbx
xor    %ecx,%ecx
xchg   %ax,%ax
movupd (%rdx,%rcx,8),%xmm4
movupd 0x10(%rdx,%rcx,8),%xmm5
movupd 0x20(%rdx,%rcx,8),%xmm6
movupd 0x30(%rdx,%rcx,8),%xmm7
mulpd  %xmm2,%xmm4
addpd  %xmm3,%xmm4
mulpd  %xmm2,%xmm5
addpd  %xmm3,%xmm5
movupd %xmm4,(%rdx,%rcx,8)
movupd %xmm5,0x10(%rdx,%rcx,8)
mulpd  %xmm2,%xmm6
addpd  %xmm3,%xmm6
mulpd  %xmm2,%xmm7
addpd  %xmm3,%xmm7
movupd %xmm6,0x20(%rdx,%rcx,8)
movupd %xmm7,0x30(%rdx,%rcx,8)
add    $0x8,%rcx
add    $0xfffffffffffffffe,%rbx
jne    1260 <stochasticMatrix+0x160>
test   $0x1,%r10b
je     12e4 <stochasticMatrix+0x1e4>
movupd (%rdx,%rcx,8),%xmm4
movupd 0x10(%rdx,%rcx,8),%xmm5
mulpd  %xmm2,%xmm4
addpd  %xmm3,%xmm4
mulpd  %xmm2,%xmm5
addpd  %xmm3,%xmm5
movupd %xmm4,(%rdx,%rcx,8)
movupd %xmm5,0x10(%rdx,%rcx,8)
mov    %r11,%rcx
cmp    %r14,%r11
je     1230 <stochasticMatrix+0x130>
movsd  (%rdx,%rcx,8),%xmm4
mulsd  %xmm1,%xmm4
addsd  %xmm0,%xmm4
movsd  %xmm4,(%rdx,%rcx,8)
add    $0x1,%rcx
cmp    %rcx,%r14
jne    12f0 <stochasticMatrix+0x1f0>
jmp    1230 <stochasticMatrix+0x130>
xor    %ecx,%ecx
test   $0x1,%r10b
jne    12be <stochasticMatrix+0x1be>
jmp    12e4 <stochasticMatrix+0x1e4>
pop    %rbx
pop    %r14
ret

LLVM IR (-O0):
define double** @stochasticMatrix(double** %0, double %1, i32 %2) {
%4 = alloca double**
%5 = alloca double
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
store double** %0, double*** %4
store double %1, double* %5
store i32 %2, i32* %6
store i32 0, i32* %7
br label %11
11: ; preds = %77, %3
%12 = load i32, i32* %7
%13 = load i32, i32* %6
%14 = icmp slt i32 %12, %13
br i1 %14, label %15, label %80
15: ; preds = %11
store i32 0, i32* %10
store i32 0, i32* %8
br label %16
16: ; preds = %73, %15
%17 = load i32, i32* %8
%18 = load i32, i32* %6
%19 = icmp slt i32 %17, %18
br i1 %19, label %20, label %76
20: ; preds = %16
%21 = load double**, double*** %4
%22 = load i32, i32* %7
%23 = sext i32 %22 to i64
%24 = getelementptr inbounds double*, double** %21, i64 %23
%25 = load double*, double** %24
%26 = load i32, i32* %8
%27 = sext i32 %26 to i64
%28 = getelementptr inbounds double, double* %25, i64 %27
%29 = load double, double* %28
%30 = load i32, i32* %10
%31 = sitofp i32 %30 to double
%32 = fadd double %31, %29
%33 = fptosi double %32 to i32
store i32 %33, i32* %10
%34 = load i32, i32* %8
%35 = load i32, i32* %6
%36 = sub nsw i32 %35, 1
%37 = icmp eq i32 %34, %36
br i1 %37, label %38, label %72
38: ; preds = %20
store i32 0, i32* %9
br label %39
39: ; preds = %68, %38
%40 = load i32, i32* %9
%41 = load i32, i32* %6
%42 = icmp slt i32 %40, %41
br i1 %42, label %43, label %71
43: ; preds = %39
%44 = load double**, double*** %4
%45 = load i32, i32* %7
%46 = sext i32 %45 to i64
%47 = getelementptr inbounds double*, double** %44, i64 %46
%48 = load double*, double** %47
%49 = load i32, i32* %9
%50 = sext i32 %49 to i64
%51 = getelementptr inbounds double, double* %48, i64 %50
%52 = load double, double* %51
%53 = fcmp oeq double %52, 1.000000e+00
br i1 %53, label %54, label %67
54: ; preds = %43
%55 = load i32, i32* %10
%56 = sitofp i32 %55 to double
%57 = load double**, double*** %4
%58 = load i32, i32* %7
%59 = sext i32 %58 to i64
%60 = getelementptr inbounds double*, double** %57, i64 %59
%61 = load double*, double** %60
%62 = load i32, i32* %9
%63 = sext i32 %62 to i64
%64 = getelementptr inbounds double, double* %61, i64 %63
%65 = load double, double* %64
%66 = fdiv double %65, %56
store double %66, double* %64
br label %67
67: ; preds = %54, %43
br label %68
68: ; preds = %67
%69 = load i32, i32* %9
%70 = add nsw i32 %69, 1
store i32 %70, i32* %9
br label %39
71: ; preds = %39
br label %72
72: ; preds = %71, %20
br label %73
73: ; preds = %72
%74 = load i32, i32* %8
%75 = add nsw i32 %74, 1
store i32 %75, i32* %8
br label %16
76: ; preds = %16
br label %77
77: ; preds = %76
%78 = load i32, i32* %7
%79 = add nsw i32 %78, 1
store i32 %79, i32* %7
br label %11
80: ; preds = %11
store i32 0, i32* %7
br label %81
81: ; preds = %119, %80
%82 = load i32, i32* %7
%83 = load i32, i32* %6
%84 = icmp slt i32 %82, %83
br i1 %84, label %85, label %122
85: ; preds = %81
store i32 0, i32* %8
br label %86
86: ; preds = %115, %85
%87 = load i32, i32* %8
%88 = load i32, i32* %6
%89 = icmp slt i32 %87, %88
br i1 %89, label %90, label %118
90: ; preds = %86
%91 = load double, double* %5
%92 = fsub double 1.000000e+00, %91
%93 = load double**, double*** %4
%94 = load i32, i32* %7
%95 = sext i32 %94 to i64
%96 = getelementptr inbounds double*, double** %93, i64 %95
%97 = load double*, double** %96
%98 = load i32, i32* %8
%99 = sext i32 %98 to i64
%100 = getelementptr inbounds double, double* %97, i64 %99
%101 = load double, double* %100
%102 = load double, double* %5
%103 = load i32, i32* %6
%104 = sitofp i32 %103 to double
%105 = fdiv double %102, %104
%106 = call double @llvm.fmuladd.f64(double %92, double %101, double %105)
%107 = load double**, double*** %4
%108 = load i32, i32* %7
%109 = sext i32 %108 to i64
%110 = getelementptr inbounds double*, double** %107, i64 %109
%111 = load double*, double** %110
%112 = load i32, i32* %8
%113 = sext i32 %112 to i64
%114 = getelementptr inbounds double, double* %111, i64 %113
store double %106, double* %114
br label %115
115: ; preds = %90
%116 = load i32, i32* %8
%117 = add nsw i32 %116, 1
store i32 %117, i32* %8
br label %86
118: ; preds = %86
br label %119
119: ; preds = %118
%120 = load i32, i32* %7
%121 = add nsw i32 %120, 1
store i32 %121, i32* %7
br label %81
122: ; preds = %81
%123 = load double**, double*** %4
ret double** %123
}

LLVM IR (-O2):
define double** @stochasticMatrix(double** returned %0, double %1, i32 %2) {
%4 = icmp sgt i32 %2, 0
br i1 %4, label %5, label %142
5: ; preds = %3
%6 = add nsw i32 %2, -1
%7 = zext i32 %6 to i64
%8 = zext i32 %2 to i64
%9 = and i64 %8, 1
%10 = icmp eq i32 %2, 1
%11 = and i64 %8, 4294967294
%12 = icmp eq i64 %9, 0
br label %13
13: ; preds = %81, %5
%14 = phi i64 [ 0, %5 ], [ %82, %81 ]
%15 = getelementptr inbounds double*, double** %0, i64 %14
%16 = load double*, double** %15
br label %42
17: ; preds = %81
br i1 %4, label %18, label %142
18: ; preds = %17
%19 = fsub double 1.000000e+00, %1
%20 = sitofp i32 %2 to double
%21 = fdiv double %1, %20
%22 = zext i32 %2 to i64
%23 = and i64 %8, 4294967292
%24 = add nsw i64 %23, -4
%25 = lshr exact i64 %24, 2
%26 = add nuw nsw i64 %25, 1
%27 = icmp ult i32 %2, 4
%28 = and i64 %8, 4294967292
%29 = insertelement <2 x double> poison, double %19, i64 0
%30 = shufflevector <2 x double> %29, <2 x double> poison, <2 x i32> zeroinitializer
%31 = insertelement <2 x double> poison, double %21, i64 0
%32 = shufflevector <2 x double> %31, <2 x double> poison, <2 x i32> zeroinitializer
%33 = insertelement <2 x double> poison, double %19, i64 0
%34 = shufflevector <2 x double> %33, <2 x double> poison, <2 x i32> zeroinitializer
%35 = insertelement <2 x double> poison, double %21, i64 0
%36 = shufflevector <2 x double> %35, <2 x double> poison, <2 x i32> zeroinitializer
%37 = and i64 %26, 1
%38 = icmp eq i64 %24, 0
%39 = and i64 %26, 9223372036854775806
%40 = icmp eq i64 %37, 0
%41 = icmp eq i64 %28, %8
br label %84
42: ; preds = %13, %78
%43 = phi i64 [ 0, %13 ], [ %79, %78 ]
%44 = phi i32 [ 0, %13 ], [ %49, %78 ]
%45 = getelementptr inbounds double, double* %16, i64 %43
%46 = load double, double* %45
%47 = sitofp i32 %44 to double
%48 = fadd double %46, %47
%49 = fptosi double %48 to i32
%50 = icmp eq i64 %43, %7
br i1 %50, label %51, label %78
51: ; preds = %42
%52 = sitofp i32 %49 to double
%53 = fdiv double 1.000000e+00, %52
br i1 %10, label %71, label %54
54: ; preds = %51, %67
%55 = phi i64 [ %68, %67 ], [ 0, %51 ]
%56 = phi i64 [ %69, %67 ], [ 0, %51 ]
%57 = getelementptr inbounds double, double* %16, i64 %55
%58 = load double, double* %57
%59 = fcmp oeq double %58, 1.000000e+00
br i1 %59, label %60, label %61
60: ; preds = %54
store double %53, double* %57
br label %61
61: ; preds = %54, %60
%62 = or i64 %55, 1
%63 = getelementptr inbounds double, double* %16, i64 %62
%64 = load double, double* %63
%65 = fcmp oeq double %64, 1.000000e+00
br i1 %65, label %66, label %67
66: ; preds = %61
store double %53, double* %63
br label %67
67: ; preds = %66, %61
%68 = add nuw nsw i64 %55, 2
%69 = add i64 %56, 2
%70 = icmp eq i64 %69, %11
br i1 %70, label %71, label %54
71: ; preds = %67, %51
%72 = phi i64 [ 0, %51 ], [ %68, %67 ]
br i1 %12, label %78, label %73
73: ; preds = %71
%74 = getelementptr inbounds double, double* %16, i64 %72
%75 = load double, double* %74
%76 = fcmp oeq double %75, 1.000000e+00
br i1 %76, label %77, label %78
77: ; preds = %73
store double %53, double* %74
br label %78
78: ; preds = %71, %77, %73, %42
%79 = add nuw nsw i64 %43, 1
%80 = icmp eq i64 %79, %8
br i1 %80, label %81, label %42
81: ; preds = %78
%82 = add nuw nsw i64 %14, 1
%83 = icmp eq i64 %82, %8
br i1 %83, label %17, label %13
84: ; preds = %139, %18
%85 = phi i64 [ 0, %18 ], [ %140, %139 ]
%86 = getelementptr inbounds double*, double** %0, i64 %85
%87 = load double*, double** %86
br i1 %27, label %130, label %88
88: ; preds = %84
br i1 %38, label %116, label %89
89: ; preds = %88, %89
%90 = phi i64 [ %113, %89 ], [ 0, %88 ]
%91 = phi i64 [ %114, %89 ], [ 0, %88 ]
%92 = getelementptr inbounds double, double* %87, i64 %90
%93 = bitcast double* %92 to <2 x double>*
%94 = load <2 x double>, <2 x double>* %93
%95 = getelementptr inbounds double, double* %92, i64 2
%96 = bitcast double* %95 to <2 x double>*
%97 = load <2 x double>, <2 x double>* %96
%98 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %30, <2 x double> %94, <2 x double> %32)
%99 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %34, <2 x double> %97, <2 x double> %36)
%100 = bitcast double* %92 to <2 x double>*
store <2 x double> %98, <2 x double>* %100
%101 = bitcast double* %95 to <2 x double>*
store <2 x double> %99, <2 x double>* %101
%102 = or i64 %90, 4
%103 = getelementptr inbounds double, double* %87, i64 %102
%104 = bitcast double* %103 to <2 x double>*
%105 = load <2 x double>, <2 x double>* %104
%106 = getelementptr inbounds double, double* %103, i64 2
%107 = bitcast double* %106 to <2 x double>*
%108 = load <2 x double>, <2 x double>* %107
%109 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %30, <2 x double> %105, <2 x double> %32)
%110 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %34, <2 x double> %108, <2 x double> %36)
%111 = bitcast double* %103 to <2 x double>*
store <2 x double> %109, <2 x double>* %111
%112 = bitcast double* %106 to <2 x double>*
store <2 x double> %110, <2 x double>* %112
%113 = add nuw i64 %90, 8
%114 = add i64 %91, 2
%115 = icmp eq i64 %114, %39
br i1 %115, label %116, label %89
116: ; preds = %89, %88
%117 = phi i64 [ 0, %88 ], [ %113, %89 ]
br i1 %40, label %129, label %118
118: ; preds = %116
%119 = getelementptr inbounds double, double* %87, i64 %117
%120 = bitcast double* %119 to <2 x double>*
%121 = load <2 x double>, <2 x double>* %120
%122 = getelementptr inbounds double, double* %119, i64 2
%123 = bitcast double* %122 to <2 x double>*
%124 = load <2 x double>, <2 x double>* %123
%125 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %30, <2 x double> %121, <2 x double> %32)
%126 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %34, <2 x double> %124, <2 x double> %36)
%127 = bitcast double* %119 to <2 x double>*
store <2 x double> %125, <2 x double>* %127
%128 = bitcast double* %122 to <2 x double>*
store <2 x double> %126, <2 x double>* %128
br label %129
129: ; preds = %116, %118
br i1 %41, label %139, label %130
130: ; preds = %84, %129
%131 = phi i64 [ 0, %84 ], [ %28, %129 ]
br label %132
132: ; preds = %130, %132
%133 = phi i64 [ %137, %132 ], [ %131, %130 ]
%134 = getelementptr inbounds double, double* %87, i64 %133
%135 = load double, double* %134
%136 = tail call double @llvm.fmuladd.f64(double %19, double %135, double %21)
store double %136, double* %134
%137 = add nuw nsw i64 %133, 1
%138 = icmp eq i64 %137, %22
br i1 %138, label %139, label %132
139: ; preds = %132, %129
%140 = add nuw nsw i64 %85, 1
%141 = icmp eq i64 %140, %22
br i1 %141, label %142, label %84
142: ; preds = %139, %3, %17
ret double** %0
}