#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 */
double DBL_MAX;
void vertices_extents(double *va, int nva, double *vb, int nvb, double eps,
                      double *e) {
  e[0] = e[1] = e[2] = DBL_MAX;
  e[3] = e[4] = e[5] = -DBL_MAX;
  for (; nva > 0; va += 3, nva--) {
    if (va[0] < e[0])
      e[0] = va[0];
    if (va[1] < e[1])
      e[1] = va[1];
    if (va[2] < e[2])
      e[2] = va[2];
    if (va[0] > e[3])
      e[3] = va[0];
    if (va[1] > e[4])
      e[4] = va[1];
    if (va[2] > e[5])
      e[5] = va[2];
  }
  for (; nvb > 0; vb += 3, nvb--) {
    if (vb[0] < e[0])
      e[0] = vb[0];
    if (vb[1] < e[1])
      e[1] = vb[1];
    if (vb[2] < e[2])
      e[2] = vb[2];
    if (vb[0] > e[3])
      e[3] = vb[0];
    if (vb[1] > e[4])
      e[4] = vb[1];
    if (vb[2] > e[5])
      e[5] = vb[2];
  }
  e[0] -= eps;
  e[1] -= eps;
  e[2] -= eps;
  e[3] += eps;
  e[4] += eps;
  e[5] += eps;
}


x86 assembly (clang, -O0):
<vertices_extents>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %ecx,-0x1c(%rbp)
movsd  %xmm0,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
mov    0x2ebe(%rip),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x2e99(%rip),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x28(%rax)
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x18(%rax)
cmpl   $0x0,-0xc(%rbp)
jle    12a8 <vertices_extents+0x1a8>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    11b1 <vertices_extents+0xb1>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    11df <vertices_extents+0xdf>
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    120d <vertices_extents+0x10d>
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
ucomisd 0x18(%rax),%xmm0
jbe    1235 <vertices_extents+0x135>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
ucomisd 0x20(%rax),%xmm0
jbe    125f <vertices_extents+0x15f>
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x30(%rbp),%rax
ucomisd 0x28(%rax),%xmm0
jbe    1289 <vertices_extents+0x189>
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x28(%rax)
jmp    128e <vertices_extents+0x18e>
mov    -0x8(%rbp),%rax
add    $0x18,%rax
mov    %rax,-0x8(%rbp)
mov    -0xc(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0xc(%rbp)
jmp    117d <vertices_extents+0x7d>
jmp    12ad <vertices_extents+0x1ad>
cmpl   $0x0,-0x1c(%rbp)
jle    13d8 <vertices_extents+0x2d8>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    12e1 <vertices_extents+0x1e1>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    130f <vertices_extents+0x20f>
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    133d <vertices_extents+0x23d>
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
ucomisd 0x18(%rax),%xmm0
jbe    1365 <vertices_extents+0x265>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
ucomisd 0x20(%rax),%xmm0
jbe    138f <vertices_extents+0x28f>
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x30(%rbp),%rax
ucomisd 0x28(%rax),%xmm0
jbe    13b9 <vertices_extents+0x2b9>
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,0x28(%rax)
jmp    13be <vertices_extents+0x2be>
mov    -0x18(%rbp),%rax
add    $0x18,%rax
mov    %rax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x1c(%rbp)
jmp    12ad <vertices_extents+0x1ad>
movsd  -0x28(%rbp),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
movsd  -0x28(%rbp),%xmm1
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%rax)
movsd  -0x28(%rbp),%xmm1
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rax)
movsd  -0x28(%rbp),%xmm0
mov    -0x30(%rbp),%rax
addsd  0x18(%rax),%xmm0
movsd  %xmm0,0x18(%rax)
movsd  -0x28(%rbp),%xmm0
mov    -0x30(%rbp),%rax
addsd  0x20(%rax),%xmm0
movsd  %xmm0,0x20(%rax)
movsd  -0x28(%rbp),%xmm0
mov    -0x30(%rbp),%rax
addsd  0x28(%rax),%xmm0
movsd  %xmm0,0x28(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<vertices_extents>:
mov    0x2ed9(%rip),%rax
movsd  (%rax),%xmm2
movsd  %xmm2,0x10(%r8)
movsd  %xmm2,0x8(%r8)
movsd  %xmm2,(%r8)
movq   (%rax),%xmm1
pxor   0xed8(%rip),%xmm1
movq   %xmm1,0x28(%r8)
pshufd $0x44,%xmm1,%xmm3
movdqu %xmm3,0x18(%r8)
test   %esi,%esi
jle    11f4 <vertices_extents+0xf4>
add    $0x1,%esi
movdqa %xmm1,%xmm3
movdqa %xmm1,%xmm4
movapd %xmm2,%xmm5
movapd %xmm2,%xmm6
jmp    1170 <vertices_extents+0x70>
cs nopw 0x0(%rax,%rax,1)
add    $0xffffffff,%esi
add    $0x18,%rdi
cmp    $0x1,%esi
jle    1204 <vertices_extents+0x104>
movsd  (%rdi),%xmm7
ucomisd %xmm7,%xmm6
jbe    1183 <vertices_extents+0x83>
movsd  %xmm7,(%r8)
movapd %xmm7,%xmm6
movsd  0x8(%rdi),%xmm7
ucomisd %xmm7,%xmm5
jbe    1198 <vertices_extents+0x98>
movsd  %xmm7,0x8(%r8)
movapd %xmm7,%xmm5
movsd  0x10(%rdi),%xmm7
ucomisd %xmm7,%xmm2
jbe    11ad <vertices_extents+0xad>
movsd  %xmm7,0x10(%r8)
movapd %xmm7,%xmm2
movsd  (%rdi),%xmm7
ucomisd %xmm4,%xmm7
jbe    11c1 <vertices_extents+0xc1>
movsd  %xmm7,0x18(%r8)
movapd %xmm7,%xmm4
movsd  0x8(%rdi),%xmm7
ucomisd %xmm3,%xmm7
jbe    11d6 <vertices_extents+0xd6>
movsd  %xmm7,0x20(%r8)
movapd %xmm7,%xmm3
movsd  0x10(%rdi),%xmm7
ucomisd %xmm1,%xmm7
jbe    1160 <vertices_extents+0x60>
movsd  %xmm7,0x28(%r8)
movapd %xmm7,%xmm1
jmp    1160 <vertices_extents+0x60>
movdqa %xmm1,%xmm3
movdqa %xmm1,%xmm4
movapd %xmm2,%xmm5
movapd %xmm2,%xmm6
test   %ecx,%ecx
jle    12b4 <vertices_extents+0x1b4>
add    $0x1,%ecx
jmp    1230 <vertices_extents+0x130>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
add    $0xffffffff,%ecx
add    $0x18,%rdx
cmp    $0x1,%ecx
jle    12b4 <vertices_extents+0x1b4>
movsd  (%rdx),%xmm7
ucomisd %xmm7,%xmm6
jbe    1243 <vertices_extents+0x143>
movsd  %xmm7,(%r8)
movapd %xmm7,%xmm6
movsd  0x8(%rdx),%xmm7
ucomisd %xmm7,%xmm5
jbe    1258 <vertices_extents+0x158>
movsd  %xmm7,0x8(%r8)
movapd %xmm7,%xmm5
movsd  0x10(%rdx),%xmm7
ucomisd %xmm7,%xmm2
jbe    126d <vertices_extents+0x16d>
movsd  %xmm7,0x10(%r8)
movapd %xmm7,%xmm2
movsd  (%rdx),%xmm7
ucomisd %xmm4,%xmm7
jbe    1281 <vertices_extents+0x181>
movsd  %xmm7,0x18(%r8)
movapd %xmm7,%xmm4
movsd  0x8(%rdx),%xmm7
ucomisd %xmm3,%xmm7
jbe    1296 <vertices_extents+0x196>
movsd  %xmm7,0x20(%r8)
movapd %xmm7,%xmm3
movsd  0x10(%rdx),%xmm7
ucomisd %xmm1,%xmm7
jbe    1220 <vertices_extents+0x120>
movsd  %xmm7,0x28(%r8)
movapd %xmm7,%xmm1
jmp    1220 <vertices_extents+0x120>
subsd  %xmm0,%xmm6
movsd  %xmm6,(%r8)
subsd  %xmm0,%xmm5
movsd  %xmm5,0x8(%r8)
subsd  %xmm0,%xmm2
movsd  %xmm2,0x10(%r8)
addsd  %xmm0,%xmm4
movsd  %xmm4,0x18(%r8)
addsd  %xmm0,%xmm3
movsd  %xmm3,0x20(%r8)
addsd  %xmm0,%xmm1
movsd  %xmm1,0x28(%r8)
ret

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

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