#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int EXIT_SUCCESS;
void *calloc(int, int);
int main(int argc, char *argv[]) {
  double **vf;
  int i, j, ij;
  int nx = 2;
  int ny = 2;
  int nz = 2;
  double dx = 1;
  double dy = 1;
  double dz = 1;
  double X = 2;
  double Y = 2;
  double Z = 2;
  int N = 2 * nx * ny + 2 * nx * nz + 2 * ny * nz;
  double *base_x, *base_y, *base_z;
  vf = calloc(N, sizeof(double));
  base_x = calloc(3 * N, sizeof(double));
  base_y = base_x + N;
  base_z = base_y + N;
  ij = 0;
  for (j = 0; j < ny; j++) {
    for (i = 0; i < nx; i++) {
      base_x[ij] = i * dx;
      base_y[ij] = j * dy;
      base_z[ij] = 0.0;
    }
  }
  for (j = 0; j < ny; j++) {
    for (i = 0; i < nx; i++) {
      base_x[ij] = i * dx;
      base_y[ij] = j * dy;
      base_z[ij] = Z;
    }
  }
  for (j = 0; j < nz; j++) {
    for (i = 0; i < nx; i++) {
      base_x[ij] = i * dx;
      base_y[ij] = 0.0;
      base_z[ij] = j * dz;
    }
  }
  for (j = 0; j < ny; j++) {
    for (i = 0; i < nx; i++) {
      base_x[ij] = i * dx;
      base_y[ij] = Y;
      base_z[ij] = j * dz;
    }
  }
  for (j = 0; j < nz; j++) {
    for (i = 0; i < ny; i++) {
      base_x[ij] = 0.0;
      base_y[ij] = i * dy;
      base_z[ij] = j * dz;
    }
  }
  for (j = 0; j < nz; j++) {
    for (i = 0; i < ny; i++) {
      base_x[ij] = X;
      base_y[ij] = i * dy;
      base_z[ij] = j * dz;
    }
  }
  return EXIT_SUCCESS;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x80,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movl   $0x2,-0x28(%rbp)
movl   $0x2,-0x2c(%rbp)
movl   $0x2,-0x30(%rbp)
movsd  0xec2(%rip),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  0xeb5(%rip),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  0xea8(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  0xe93(%rip),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  0xe86(%rip),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  0xe79(%rip),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x28(%rbp),%eax
shl    $0x1,%eax
imul   -0x2c(%rbp),%eax
mov    -0x28(%rbp),%ecx
shl    $0x1,%ecx
imul   -0x30(%rbp),%ecx
add    %ecx,%eax
mov    -0x2c(%rbp),%ecx
shl    $0x1,%ecx
imul   -0x30(%rbp),%ecx
add    %ecx,%eax
mov    %eax,-0x64(%rbp)
mov    -0x64(%rbp),%edi
mov    $0x8,%esi
call   1030 <calloc@plt>
mov    %rax,-0x18(%rbp)
imul   $0x3,-0x64(%rbp),%edi
mov    $0x8,%esi
call   1030 <calloc@plt>
mov    %rax,-0x70(%rbp)
mov    -0x70(%rbp),%rax
movslq -0x64(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x78(%rbp)
mov    -0x78(%rbp),%rax
movslq -0x64(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x80(%rbp)
movl   $0x0,-0x24(%rbp)
movl   $0x0,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1286 <main+0x176>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x28(%rbp),%eax
jge    1273 <main+0x163>
cvtsi2sdl -0x1c(%rbp),%xmm0
mulsd  -0x38(%rbp),%xmm0
mov    -0x70(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
cvtsi2sdl -0x20(%rbp),%xmm0
mulsd  -0x40(%rbp),%xmm0
mov    -0x78(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x80(%rbp),%rax
movslq -0x24(%rbp),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    121b <main+0x10b>
jmp    1278 <main+0x168>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1208 <main+0xf8>
movl   $0x0,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    130d <main+0x1fd>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x28(%rbp),%eax
jge    12fa <main+0x1ea>
cvtsi2sdl -0x1c(%rbp),%xmm0
mulsd  -0x38(%rbp),%xmm0
mov    -0x70(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
cvtsi2sdl -0x20(%rbp),%xmm0
mulsd  -0x40(%rbp),%xmm0
mov    -0x78(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x60(%rbp),%xmm0
mov    -0x80(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    12a0 <main+0x190>
jmp    12ff <main+0x1ef>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    128d <main+0x17d>
movl   $0x0,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x30(%rbp),%eax
jge    1392 <main+0x282>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x28(%rbp),%eax
jge    137f <main+0x26f>
cvtsi2sdl -0x1c(%rbp),%xmm0
mulsd  -0x38(%rbp),%xmm0
mov    -0x70(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x78(%rbp),%rax
movslq -0x24(%rbp),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
cvtsi2sdl -0x20(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
mov    -0x80(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1327 <main+0x217>
jmp    1384 <main+0x274>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1314 <main+0x204>
movl   $0x0,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1419 <main+0x309>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x28(%rbp),%eax
jge    1406 <main+0x2f6>
cvtsi2sdl -0x1c(%rbp),%xmm0
mulsd  -0x38(%rbp),%xmm0
mov    -0x70(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x78(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
cvtsi2sdl -0x20(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
mov    -0x80(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    13ac <main+0x29c>
jmp    140b <main+0x2fb>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1399 <main+0x289>
movl   $0x0,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x30(%rbp),%eax
jge    149e <main+0x38e>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    148b <main+0x37b>
mov    -0x70(%rbp),%rax
movslq -0x24(%rbp),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
cvtsi2sdl -0x1c(%rbp),%xmm0
mulsd  -0x40(%rbp),%xmm0
mov    -0x78(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
cvtsi2sdl -0x20(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
mov    -0x80(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1433 <main+0x323>
jmp    1490 <main+0x380>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1420 <main+0x310>
movl   $0x0,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x30(%rbp),%eax
jge    1525 <main+0x415>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1512 <main+0x402>
movsd  -0x50(%rbp),%xmm0
mov    -0x70(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
cvtsi2sdl -0x1c(%rbp),%xmm0
mulsd  -0x40(%rbp),%xmm0
mov    -0x78(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
cvtsi2sdl -0x20(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
mov    -0x80(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    14b8 <main+0x3a8>
jmp    1517 <main+0x407>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    14a5 <main+0x395>
mov    0x2ab4(%rip),%rax
mov    (%rax),%eax
add    $0x80,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
mov    0x2ed9(%rip),%rax
mov    (%rax),%eax
ret

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

LLVM IR (-O2):
@EXIT_SUCCESS = global i32 0
define i32 @main(i32 %0, i8** nocapture readnone %1) {
%3 = load i32, i32* @EXIT_SUCCESS
ret i32 %3
}