void plot_star(x, n, time, ratio, m, initm) double (*x)[(3)];
int n;
double time;
double ratio;
double *m, initm;
{
  static double anix[(10000)][(3)], maxx, button;
  static int tmpc[(10000)];
  int i, d;
  for (i = 0; i < n; i++) {
    for (d = 0; d < (3); d++)
      anix[i][d] = x[i][d] * ratio + 0.5;
    tmpc[i] = 0;
    if (m[i] > initm)
      tmpc[i] = 14;
    if (m[i] > 2 * initm)
      tmpc[i] = 13;
    if (m[i] > 0.1)
      tmpc[i] = 12;
    if (m[i] > 0.2)
      tmpc[i] = 11;
    if (m[i] > 0.3)
      tmpc[i] = 10;
  }
  plot_particle2D(anix, n, tmpc, time);
}


x86 assembly (clang, -O0):
<plot_star>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
movsd  %xmm0,-0x18(%rbp)
movsd  %xmm1,-0x20(%rbp)
mov    %rdx,-0x28(%rbp)
movsd  %xmm2,-0x30(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0xc(%rbp),%eax
jge    12c4 <plot_star+0x1b4>
movl   $0x0,-0x38(%rbp)
cmpl   $0x3,-0x38(%rbp)
jge    11ac <plot_star+0x9c>
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
imul   $0x18,%rcx,%rcx
add    %rcx,%rax
movslq -0x38(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  -0x20(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xea1(%rip),%xmm1
addsd  %xmm1,%xmm0
movslq -0x34(%rbp),%rcx
lea    0x2eb2(%rip),%rax
imul   $0x18,%rcx,%rcx
add    %rcx,%rax
movslq -0x38(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    114c <plot_star+0x3c>
movslq -0x34(%rbp),%rcx
lea    0x3d819(%rip),%rax
movl   $0x0,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
ucomisd -0x30(%rbp),%xmm0
jbe    11e8 <plot_star+0xd8>
movslq -0x34(%rbp),%rcx
lea    0x3d7ef(%rip),%rax
movl   $0xe,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0xe03(%rip),%xmm1
mulsd  -0x30(%rbp),%xmm1
ucomisd %xmm1,%xmm0
jbe    121e <plot_star+0x10e>
movslq -0x34(%rbp),%rcx
lea    0x3d7b9(%rip),%rax
movl   $0xd,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0xdd5(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    124f <plot_star+0x13f>
movslq -0x34(%rbp),%rcx
lea    0x3d788(%rip),%rax
movl   $0xc,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0xdac(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1280 <plot_star+0x170>
movslq -0x34(%rbp),%rcx
lea    0x3d757(%rip),%rax
movl   $0xb,(%rax,%rcx,4)
mov    -0x28(%rbp),%rax
movslq -0x34(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0xd83(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    12b1 <plot_star+0x1a1>
movslq -0x34(%rbp),%rcx
lea    0x3d726(%rip),%rax
movl   $0xa,(%rax,%rcx,4)
jmp    12b6 <plot_star+0x1a6>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1139 <plot_star+0x29>
mov    -0xc(%rbp),%esi
movsd  -0x18(%rbp),%xmm0
lea    0x2d6d(%rip),%rdi
lea    0x3d6f6(%rip),%rdx
mov    $0x1,%al
call   1030 <plot_particle2D@plt>
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<plot_star>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
test   %esi,%esi
jle    1355 <plot_star+0x245>
movapd %xmm2,%xmm14
addsd  %xmm2,%xmm14
mov    %esi,%r15d
cmp    $0x1,%esi
jne    113a <plot_star+0x2a>
xor    %r9d,%r9d
jmp    1372 <plot_star+0x262>
lea    0x0(,%r15,8),%rax
lea    (%rax,%rax,2),%rax
lea    0x2ef3(%rip),%r8
lea    (%r8,%rax,1),%rcx
add    %rdi,%rax
cmp    %r8,%rax
seta   %r10b
lea    (%rdx,%r15,8),%rax
cmp    %rdi,%rcx
seta   %bl
cmp    %r8,%rax
seta   %al
cmp    %rdx,%rcx
seta   %cl
xor    %r9d,%r9d
test   %bl,%r10b
jne    1372 <plot_star+0x262>
and    %cl,%al
jne    1372 <plot_star+0x262>
movsd  %xmm0,-0x8(%rsp)
mov    %r15d,%r9d
and    $0xfffffffe,%r9d
movapd %xmm1,%xmm4
unpcklpd %xmm1,%xmm4
movapd %xmm2,%xmm15
unpcklpd %xmm2,%xmm15
movapd %xmm14,%xmm11
unpcklpd %xmm14,%xmm11
xor    %ecx,%ecx
movapd 0xe48(%rip),%xmm7
lea    0x3d801(%rip),%r10
movapd 0xe48(%rip),%xmm13
movapd 0xe4f(%rip),%xmm9
movapd 0xe56(%rip),%xmm10
mov    $0xc,%r11d
mov    $0xb,%r14d
mov    $0xa,%r12d
xor    %ebx,%ebx
jmp    1201 <plot_star+0xf1>
add    $0x2,%rbx
add    $0x30,%rcx
cmp    %rbx,%r9
je     134a <plot_star+0x23a>
movsd  (%rdi,%rcx,1),%xmm0
movsd  0x8(%rdi,%rcx,1),%xmm3
movsd  0x10(%rdi,%rcx,1),%xmm5
movhpd 0x18(%rdi,%rcx,1),%xmm0
mulpd  %xmm4,%xmm0
addpd  %xmm7,%xmm0
movhpd 0x20(%rdi,%rcx,1),%xmm3
mulpd  %xmm4,%xmm3
addpd  %xmm7,%xmm3
movhpd 0x28(%rdi,%rcx,1),%xmm5
mulpd  %xmm4,%xmm5
addpd  %xmm7,%xmm5
movapd %xmm0,%xmm6
unpcklpd %xmm3,%xmm6
movsd  %xmm5,%xmm0
movhlps %xmm3,%xmm5
movaps %xmm5,0x20(%rcx,%r8,1)
movapd %xmm0,0x10(%rcx,%r8,1)
movapd %xmm6,(%rcx,%r8,1)
movq   $0x0,(%r10,%rbx,4)
movupd (%rdx,%rbx,8),%xmm12
movapd %xmm15,%xmm5
cmpltpd %xmm12,%xmm5
movapd %xmm11,%xmm6
cmpltpd %xmm12,%xmm6
orpd   %xmm6,%xmm5
movapd %xmm13,%xmm0
cmpltpd %xmm12,%xmm0
movapd %xmm9,%xmm3
cmpltpd %xmm12,%xmm3
movapd %xmm0,%xmm8
orpd   %xmm3,%xmm8
orpd   %xmm5,%xmm8
movapd %xmm10,%xmm5
cmpltpd %xmm12,%xmm5
orpd   %xmm5,%xmm8
movd   %xmm8,%eax
test   $0x1,%al
je     1300 <plot_star+0x1f0>
xor    %eax,%eax
ucomisd %xmm11,%xmm12
seta   %al
mov    $0xe,%ebp
sub    %eax,%ebp
ucomisd 0xd62(%rip),%xmm12
cmova  %r11d,%ebp
ucomisd 0xd5d(%rip),%xmm12
cmova  %r14d,%ebp
ucomisd 0xd58(%rip),%xmm12
cmova  %r12d,%ebp
mov    %ebp,(%r10,%rbx,4)
pextrw $0x4,%xmm8,%eax
test   $0x1,%al
je     11f0 <plot_star+0xe0>
unpckhpd %xmm6,%xmm6
movd   %xmm6,%eax
pextrw $0x4,%xmm0,%ebp
add    $0xe,%eax
test   $0x1,%bpl
cmovne %r11d,%eax
pextrw $0x4,%xmm3,%ebp
test   $0x1,%bpl
cmovne %r14d,%eax
pextrw $0x4,%xmm5,%ebp
test   $0x1,%bpl
cmovne %r12d,%eax
mov    %eax,0x4(%r10,%rbx,4)
jmp    11f0 <plot_star+0xe0>
cmp    %r15,%r9
movsd  -0x8(%rsp),%xmm0
jne    1372 <plot_star+0x262>
lea    0x2ce4(%rip),%rdi
lea    0x3d65d(%rip),%rdx
mov    $0x1,%al
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <plot_particle2D@plt>
movapd %xmm1,%xmm4
unpcklpd %xmm1,%xmm4
lea    (%rdx,%r9,8),%r11
lea    0x3d63b(%rip),%rax
lea    (%rax,%r9,4),%rdx
lea    (%r9,%r9,2),%rax
lea    0x8(,%rax,4),%rbp
sub    %r9,%r15
xor    %ebx,%ebx
movapd 0xc5d(%rip),%xmm8
lea    0x2c96(%rip),%r14
movsd  0xca5(%rip),%xmm9
movsd  0xc95(%rip),%xmm7
movsd  0xc7d(%rip),%xmm3
mov    $0xc,%r8d
movsd  0xc77(%rip),%xmm5
mov    $0xb,%r9d
mov    $0xa,%r10d
jmp    141d <plot_star+0x30d>
nop
xor    %ecx,%ecx
ucomisd %xmm14,%xmm6
seta   %cl
mov    $0xe,%eax
sub    %ecx,%eax
ucomisd %xmm3,%xmm6
cmova  %r8d,%eax
ucomisd %xmm5,%xmm6
cmova  %r9d,%eax
ucomisd %xmm7,%xmm6
cmova  %r10d,%eax
mov    %eax,(%rdx,%rbx,4)
add    $0x1,%rbx
add    $0xc,%rbp
cmp    %rbx,%r15
je     1355 <plot_star+0x245>
movupd -0x10(%rdi,%rbp,2),%xmm6
mulpd  %xmm4,%xmm6
addpd  %xmm8,%xmm6
movupd %xmm6,-0x10(%r14,%rbp,2)
movsd  (%rdi,%rbp,2),%xmm6
mulsd  %xmm1,%xmm6
addsd  %xmm9,%xmm6
movsd  %xmm6,(%r14,%rbp,2)
movl   $0x0,(%rdx,%rbx,4)
movsd  (%r11,%rbx,8),%xmm6
ucomisd %xmm7,%xmm6
ja     13e0 <plot_star+0x2d0>
ucomisd %xmm5,%xmm6
ja     13e0 <plot_star+0x2d0>
ucomisd %xmm3,%xmm6
ja     13e0 <plot_star+0x2d0>
ucomisd %xmm2,%xmm6
ja     13e0 <plot_star+0x2d0>
ucomisd %xmm14,%xmm6
jbe    140c <plot_star+0x2fc>
jmp    13e0 <plot_star+0x2d0>

LLVM IR (-O0):
@plot_star.anix = internal global [10000 x [3 x double]] zeroinitializer
@plot_star.maxx = internal global double 0.000000e+00
@plot_star.button = internal global double 0.000000e+00
@plot_star.tmpc = internal global [10000 x i32] zeroinitializer
define void @plot_star([3 x double]* %0, i32 %1, double %2, double %3, double* %4, double %5) {
%7 = alloca [3 x double]*
%8 = alloca i32
%9 = alloca double
%10 = alloca double
%11 = alloca double*
%12 = alloca double
%13 = alloca i32
%14 = alloca i32
store [3 x double]* %0, [3 x double]** %7
store i32 %1, i32* %8
store double %2, double* %9
store double %3, double* %10
store double* %4, double** %11
store double %5, double* %12
store i32 0, i32* %13
br label %15
15: ; preds = %105, %6
%16 = load i32, i32* %13
%17 = load i32, i32* %8
%18 = icmp slt i32 %16, %17
br i1 %18, label %19, label %108
19: ; preds = %15
store i32 0, i32* %14
br label %20
20: ; preds = %40, %19
%21 = load i32, i32* %14
%22 = icmp slt i32 %21, 3
br i1 %22, label %23, label %43
23: ; preds = %20
%24 = load [3 x double]*, [3 x double]** %7
%25 = load i32, i32* %13
%26 = sext i32 %25 to i64
%27 = getelementptr inbounds [3 x double], [3 x double]* %24, i64 %26
%28 = load i32, i32* %14
%29 = sext i32 %28 to i64
%30 = getelementptr inbounds [3 x double], [3 x double]* %27, i64 0, i64 %29
%31 = load double, double* %30
%32 = load double, double* %10
%33 = call double @llvm.fmuladd.f64(double %31, double %32, double 5.000000e-01)
%34 = load i32, i32* %13
%35 = sext i32 %34 to i64
%36 = getelementptr inbounds [10000 x [3 x double]], [10000 x [3 x double]]* @plot_star.anix, i64 0, i64 %35
%37 = load i32, i32* %14
%38 = sext i32 %37 to i64
%39 = getelementptr inbounds [3 x double], [3 x double]* %36, i64 0, i64 %38
store double %33, double* %39
br label %40
40: ; preds = %23
%41 = load i32, i32* %14
%42 = add nsw i32 %41, 1
store i32 %42, i32* %14
br label %20
43: ; preds = %20
%44 = load i32, i32* %13
%45 = sext i32 %44 to i64
%46 = getelementptr inbounds [10000 x i32], [10000 x i32]* @plot_star.tmpc, i64 0, i64 %45
store i32 0, i32* %46
%47 = load double*, double** %11
%48 = load i32, i32* %13
%49 = sext i32 %48 to i64
%50 = getelementptr inbounds double, double* %47, i64 %49
%51 = load double, double* %50
%52 = load double, double* %12
%53 = fcmp ogt double %51, %52
br i1 %53, label %54, label %58
54: ; preds = %43
%55 = load i32, i32* %13
%56 = sext i32 %55 to i64
%57 = getelementptr inbounds [10000 x i32], [10000 x i32]* @plot_star.tmpc, i64 0, i64 %56
store i32 14, i32* %57
br label %58
58: ; preds = %54, %43
%59 = load double*, double** %11
%60 = load i32, i32* %13
%61 = sext i32 %60 to i64
%62 = getelementptr inbounds double, double* %59, i64 %61
%63 = load double, double* %62
%64 = load double, double* %12
%65 = fmul double 2.000000e+00, %64
%66 = fcmp ogt double %63, %65
br i1 %66, label %67, label %71
67: ; preds = %58
%68 = load i32, i32* %13
%69 = sext i32 %68 to i64
%70 = getelementptr inbounds [10000 x i32], [10000 x i32]* @plot_star.tmpc, i64 0, i64 %69
store i32 13, i32* %70
br label %71
71: ; preds = %67, %58
%72 = load double*, double** %11
%73 = load i32, i32* %13
%74 = sext i32 %73 to i64
%75 = getelementptr inbounds double, double* %72, i64 %74
%76 = load double, double* %75
%77 = fcmp ogt double %76, 1.000000e-01
br i1 %77, label %78, label %82
78: ; preds = %71
%79 = load i32, i32* %13
%80 = sext i32 %79 to i64
%81 = getelementptr inbounds [10000 x i32], [10000 x i32]* @plot_star.tmpc, i64 0, i64 %80
store i32 12, i32* %81
br label %82
82: ; preds = %78, %71
%83 = load double*, double** %11
%84 = load i32, i32* %13
%85 = sext i32 %84 to i64
%86 = getelementptr inbounds double, double* %83, i64 %85
%87 = load double, double* %86
%88 = fcmp ogt double %87, 2.000000e-01
br i1 %88, label %89, label %93
89: ; preds = %82
%90 = load i32, i32* %13
%91 = sext i32 %90 to i64
%92 = getelementptr inbounds [10000 x i32], [10000 x i32]* @plot_star.tmpc, i64 0, i64 %91
store i32 11, i32* %92
br label %93
93: ; preds = %89, %82
%94 = load double*, double** %11
%95 = load i32, i32* %13
%96 = sext i32 %95 to i64
%97 = getelementptr inbounds double, double* %94, i64 %96
%98 = load double, double* %97
%99 = fcmp ogt double %98, 3.000000e-01
br i1 %99, label %100, label %104
100: ; preds = %93
%101 = load i32, i32* %13
%102 = sext i32 %101 to i64
%103 = getelementptr inbounds [10000 x i32], [10000 x i32]* @plot_star.tmpc, i64 0, i64 %102
store i32 10, i32* %103
br label %104
104: ; preds = %100, %93
br label %105
105: ; preds = %104
%106 = load i32, i32* %13
%107 = add nsw i32 %106, 1
store i32 %107, i32* %13
br label %15
108: ; preds = %15
%109 = load i32, i32* %8
%110 = load double, double* %9
%111 = call i32 ([3 x double]*, i32, i32*, double, ...) bitcast (i32 (...)* @plot_particle2D to i32 ([3 x double]*, i32, i32*, double, ...)*)([3 x double]* getelementptr inbounds ([10000 x [3 x double]], [10000 x [3 x double]]* @plot_star.anix, i64 0, i64 0), i32 %109, i32* getelementptr inbounds ([10000 x i32], [10000 x i32]* @plot_star.tmpc, i64 0, i64 0), double %110)
ret void
}

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