#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 */
float *malloc(int);
float *RGBtoHSL(int red_ptr, int green_ptr, int blue_ptr) {
  float red, green, blue, hue, saturation, lightness;
  red = ((float)red_ptr) / 255.0f;
  green = ((float)green_ptr) / 255.0f;
  blue = ((float)blue_ptr) / 255.0f;
  float maxColor = (((red) > ((((green) > (blue)) ? (green) : (blue))))
                        ? (red)
                        : ((((green) > (blue)) ? (green) : (blue))));
  float minColor = (((red) < ((((green) < (blue)) ? (green) : (blue))))
                        ? (red)
                        : ((((green) < (blue)) ? (green) : (blue))));
  if (red == green && green == blue) {
    hue = 0.0;
    saturation = 0.0;
    lightness = red;
  } else {
    lightness = (minColor + maxColor) / 2;
    if (lightness < 0.5)
      saturation = (maxColor - minColor) / (maxColor + minColor);
    else
      saturation = (maxColor - minColor) / (2.0 - maxColor - minColor);
    if (red == maxColor)
      hue = (green - blue) / (maxColor - minColor);
    else if (green == maxColor)
      hue = 2.0 + (blue - red) / (maxColor - minColor);
    else
      hue = 4.0 + (red - green) / (maxColor - minColor);
    hue /= 6;
    if (hue < 0)
      hue++;
  }
  float *hsl = malloc(3 * sizeof(float));
  hsl[0] = (hue);
  hsl[1] = (saturation);
  hsl[2] = (lightness);
  return hsl;
}


x86 assembly (clang, -O0):
<RGBtoHSL>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
cvtsi2ssl -0x4(%rbp),%xmm0
movss  0xed2(%rip),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x10(%rbp)
cvtsi2ssl -0x8(%rbp),%xmm0
movss  0xebc(%rip),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x14(%rbp)
cvtsi2ssl -0xc(%rbp),%xmm0
movss  0xea6(%rip),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0x10(%rbp),%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jbe    118b <RGBtoHSL+0x7b>
movss  -0x14(%rbp),%xmm0
movss  %xmm0,-0x40(%rbp)
jmp    1195 <RGBtoHSL+0x85>
movss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x40(%rbp)
movss  -0x3c(%rbp),%xmm0
movss  -0x40(%rbp),%xmm1
ucomiss %xmm1,%xmm0
jbe    11b7 <RGBtoHSL+0xa7>
movss  -0x10(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
jmp    11e9 <RGBtoHSL+0xd9>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jbe    11d5 <RGBtoHSL+0xc5>
movss  -0x14(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
jmp    11df <RGBtoHSL+0xcf>
movss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x44(%rbp)
movss  -0x44(%rbp),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x10(%rbp),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x14(%rbp),%xmm1
movss  -0x18(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    121f <RGBtoHSL+0x10f>
movss  -0x14(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
jmp    1229 <RGBtoHSL+0x119>
movss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x50(%rbp)
movss  -0x4c(%rbp),%xmm1
movss  -0x50(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    124b <RGBtoHSL+0x13b>
movss  -0x10(%rbp),%xmm0
movss  %xmm0,-0x54(%rbp)
jmp    1281 <RGBtoHSL+0x171>
movss  -0x14(%rbp),%xmm1
movss  -0x18(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    126d <RGBtoHSL+0x15d>
movss  -0x14(%rbp),%xmm0
movss  %xmm0,-0x58(%rbp)
jmp    1277 <RGBtoHSL+0x167>
movss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x58(%rbp),%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x54(%rbp),%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x10(%rbp),%xmm0
ucomiss -0x14(%rbp),%xmm0
jne    12d4 <RGBtoHSL+0x1c4>
jp     12d4 <RGBtoHSL+0x1c4>
movss  -0x14(%rbp),%xmm0
ucomiss -0x18(%rbp),%xmm0
jne    12d4 <RGBtoHSL+0x1c4>
jp     12d4 <RGBtoHSL+0x1c4>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x1c(%rbp)
xorps  %xmm0,%xmm0
movss  %xmm0,-0x20(%rbp)
movss  -0x10(%rbp),%xmm0
movss  %xmm0,-0x24(%rbp)
jmp    145b <RGBtoHSL+0x34b>
movss  -0x2c(%rbp),%xmm0
addss  -0x28(%rbp),%xmm0
movss  0xd1e(%rip),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x24(%rbp)
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xd10(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    132c <RGBtoHSL+0x21c>
movss  -0x28(%rbp),%xmm0
subss  -0x2c(%rbp),%xmm0
movss  -0x28(%rbp),%xmm1
addss  -0x2c(%rbp),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x20(%rbp)
jmp    1369 <RGBtoHSL+0x259>
movss  -0x28(%rbp),%xmm0
subss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movss  -0x28(%rbp),%xmm1
cvtss2sd %xmm1,%xmm2
movsd  0xccd(%rip),%xmm1
subsd  %xmm2,%xmm1
movss  -0x2c(%rbp),%xmm2
cvtss2sd %xmm2,%xmm2
subsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x20(%rbp)
movss  -0x10(%rbp),%xmm0
ucomiss -0x28(%rbp),%xmm0
jne    13a0 <RGBtoHSL+0x290>
jp     13a0 <RGBtoHSL+0x290>
movss  -0x14(%rbp),%xmm0
subss  -0x18(%rbp),%xmm0
movss  -0x28(%rbp),%xmm1
subss  -0x2c(%rbp),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x1c(%rbp)
jmp    1421 <RGBtoHSL+0x311>
movss  -0x14(%rbp),%xmm0
ucomiss -0x28(%rbp),%xmm0
jne    13eb <RGBtoHSL+0x2db>
jp     13eb <RGBtoHSL+0x2db>
movss  -0x18(%rbp),%xmm0
subss  -0x10(%rbp),%xmm0
movss  -0x28(%rbp),%xmm1
subss  -0x2c(%rbp),%xmm1
divss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xc3f(%rip),%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x1c(%rbp)
jmp    141c <RGBtoHSL+0x30c>
movss  -0x10(%rbp),%xmm0
subss  -0x14(%rbp),%xmm0
movss  -0x28(%rbp),%xmm1
subss  -0x2c(%rbp),%xmm1
divss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xc11(%rip),%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x1c(%rbp)
jmp    1421 <RGBtoHSL+0x311>
movss  -0x1c(%rbp),%xmm0
movss  0xbda(%rip),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x1c(%rbp)
xorps  %xmm0,%xmm0
ucomiss -0x1c(%rbp),%xmm0
jbe    1456 <RGBtoHSL+0x346>
movss  0xbc0(%rip),%xmm0
addss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
jmp    145b <RGBtoHSL+0x34b>
mov    $0xc,%edi
call   1030 <malloc@plt>
mov    %rax,-0x38(%rbp)
movss  -0x1c(%rbp),%xmm0
mov    -0x38(%rbp),%rax
movss  %xmm0,(%rax)
movss  -0x20(%rbp),%xmm0
mov    -0x38(%rbp),%rax
movss  %xmm0,0x4(%rax)
movss  -0x24(%rbp),%xmm0
mov    -0x38(%rbp),%rax
movss  %xmm0,0x8(%rax)
mov    -0x38(%rbp),%rax
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<RGBtoHSL>:
sub    $0x38,%rsp
cvtsi2ss %esi,%xmm6
divss  0xee0(%rip),%xmm6
movd   %edx,%xmm0
movd   %edi,%xmm1
punpckldq %xmm0,%xmm1
cvtdq2ps %xmm1,%xmm4
divps  0xeea(%rip),%xmm4
movaps %xmm4,%xmm0
movaps %xmm6,%xmm1
shufps $0x0,%xmm6,%xmm1
cmpeqps %xmm4,%xmm1
unpcklps %xmm1,%xmm1
movmskpd %xmm1,%eax
cmp    $0x3,%al
jne    1168 <RGBtoHSL+0x58>
xorps  %xmm1,%xmm1
movaps %xmm1,0x10(%rsp)
movaps %xmm0,0x20(%rsp)
xorps  %xmm0,%xmm0
movaps %xmm0,(%rsp)
jmp    124a <RGBtoHSL+0x13a>
movaps %xmm4,%xmm1
shufps $0x55,%xmm4,%xmm1
movaps %xmm6,%xmm2
maxss  %xmm1,%xmm2
movaps %xmm4,%xmm3
maxss  %xmm2,%xmm3
movaps %xmm6,%xmm2
minss  %xmm1,%xmm2
minss  %xmm2,%xmm4
movaps %xmm4,%xmm5
addss  %xmm3,%xmm5
movss  0xe6d(%rip),%xmm2
movaps %xmm5,%xmm7
mulss  %xmm2,%xmm7
ucomiss %xmm7,%xmm2
movaps %xmm3,%xmm2
subss  %xmm4,%xmm2
movaps %xmm7,%xmm9
jbe    11b7 <RGBtoHSL+0xa7>
movaps %xmm2,%xmm4
divss  %xmm5,%xmm4
jmp    11e3 <RGBtoHSL+0xd3>
xorps  %xmm5,%xmm5
cvtss2sd %xmm2,%xmm5
cvtss2sd %xmm3,%xmm8
movsd  0xe65(%rip),%xmm7
subsd  %xmm8,%xmm7
cvtss2sd %xmm4,%xmm4
subsd  %xmm4,%xmm7
divsd  %xmm7,%xmm5
xorps  %xmm4,%xmm4
cvtsd2ss %xmm5,%xmm4
ucomiss %xmm3,%xmm0
jne    11f4 <RGBtoHSL+0xe4>
jp     11f4 <RGBtoHSL+0xe4>
subss  %xmm1,%xmm6
divss  %xmm2,%xmm6
jmp    1223 <RGBtoHSL+0x113>
ucomiss %xmm3,%xmm6
jne    1210 <RGBtoHSL+0x100>
jp     1210 <RGBtoHSL+0x100>
subss  %xmm0,%xmm1
divss  %xmm2,%xmm1
addss  0xe01(%rip),%xmm1
movaps %xmm1,%xmm6
jmp    1223 <RGBtoHSL+0x113>
subss  %xmm6,%xmm0
divss  %xmm2,%xmm0
addss  0xde8(%rip),%xmm0
movaps %xmm0,%xmm6
divss  0xde5(%rip),%xmm6
xorps  %xmm0,%xmm0
ucomiss %xmm6,%xmm0
movaps %xmm9,0x20(%rsp)
movaps %xmm4,0x10(%rsp)
jbe    1246 <RGBtoHSL+0x136>
addss  0xdce(%rip),%xmm6
movaps %xmm6,(%rsp)
mov    $0xc,%edi
call   1030 <malloc@plt>
movaps (%rsp),%xmm0
movss  %xmm0,(%rax)
movaps 0x10(%rsp),%xmm0
movss  %xmm0,0x4(%rax)
movaps 0x20(%rsp),%xmm0
movss  %xmm0,0x8(%rax)
add    $0x38,%rsp
ret

LLVM IR (-O0):
define float* @RGBtoHSL(i32 %0, i32 %1, i32 %2) {
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca float
%8 = alloca float
%9 = alloca float
%10 = alloca float
%11 = alloca float
%12 = alloca float
%13 = alloca float
%14 = alloca float
%15 = alloca float*
store i32 %0, i32* %4
store i32 %1, i32* %5
store i32 %2, i32* %6
%16 = load i32, i32* %4
%17 = sitofp i32 %16 to float
%18 = fdiv float %17, 2.550000e+02
store float %18, float* %7
%19 = load i32, i32* %5
%20 = sitofp i32 %19 to float
%21 = fdiv float %20, 2.550000e+02
store float %21, float* %8
%22 = load i32, i32* %6
%23 = sitofp i32 %22 to float
%24 = fdiv float %23, 2.550000e+02
store float %24, float* %9
%25 = load float, float* %7
%26 = load float, float* %8
%27 = load float, float* %9
%28 = fcmp ogt float %26, %27
br i1 %28, label %29, label %31
29: ; preds = %3
%30 = load float, float* %8
br label %33
31: ; preds = %3
%32 = load float, float* %9
br label %33
33: ; preds = %31, %29
%34 = phi float [ %30, %29 ], [ %32, %31 ]
%35 = fcmp ogt float %25, %34
br i1 %35, label %36, label %38
36: ; preds = %33
%37 = load float, float* %7
br label %48
38: ; preds = %33
%39 = load float, float* %8
%40 = load float, float* %9
%41 = fcmp ogt float %39, %40
br i1 %41, label %42, label %44
42: ; preds = %38
%43 = load float, float* %8
br label %46
44: ; preds = %38
%45 = load float, float* %9
br label %46
46: ; preds = %44, %42
%47 = phi float [ %43, %42 ], [ %45, %44 ]
br label %48
48: ; preds = %46, %36
%49 = phi float [ %37, %36 ], [ %47, %46 ]
store float %49, float* %13
%50 = load float, float* %7
%51 = load float, float* %8
%52 = load float, float* %9
%53 = fcmp olt float %51, %52
br i1 %53, label %54, label %56
54: ; preds = %48
%55 = load float, float* %8
br label %58
56: ; preds = %48
%57 = load float, float* %9
br label %58
58: ; preds = %56, %54
%59 = phi float [ %55, %54 ], [ %57, %56 ]
%60 = fcmp olt float %50, %59
br i1 %60, label %61, label %63
61: ; preds = %58
%62 = load float, float* %7
br label %73
63: ; preds = %58
%64 = load float, float* %8
%65 = load float, float* %9
%66 = fcmp olt float %64, %65
br i1 %66, label %67, label %69
67: ; preds = %63
%68 = load float, float* %8
br label %71
69: ; preds = %63
%70 = load float, float* %9
br label %71
71: ; preds = %69, %67
%72 = phi float [ %68, %67 ], [ %70, %69 ]
br label %73
73: ; preds = %71, %61
%74 = phi float [ %62, %61 ], [ %72, %71 ]
store float %74, float* %14
%75 = load float, float* %7
%76 = load float, float* %8
%77 = fcmp oeq float %75, %76
br i1 %77, label %78, label %84
78: ; preds = %73
%79 = load float, float* %8
%80 = load float, float* %9
%81 = fcmp oeq float %79, %80
br i1 %81, label %82, label %84
82: ; preds = %78
store float 0.000000e+00, float* %10
store float 0.000000e+00, float* %11
%83 = load float, float* %7
store float %83, float* %12
br label %161
84: ; preds = %78, %73
%85 = load float, float* %14
%86 = load float, float* %13
%87 = fadd float %85, %86
%88 = fdiv float %87, 2.000000e+00
store float %88, float* %12
%89 = load float, float* %12
%90 = fpext float %89 to double
%91 = fcmp olt double %90, 5.000000e-01
br i1 %91, label %92, label %100
92: ; preds = %84
%93 = load float, float* %13
%94 = load float, float* %14
%95 = fsub float %93, %94
%96 = load float, float* %13
%97 = load float, float* %14
%98 = fadd float %96, %97
%99 = fdiv float %95, %98
store float %99, float* %11
br label %113
100: ; preds = %84
%101 = load float, float* %13
%102 = load float, float* %14
%103 = fsub float %101, %102
%104 = fpext float %103 to double
%105 = load float, float* %13
%106 = fpext float %105 to double
%107 = fsub double 2.000000e+00, %106
%108 = load float, float* %14
%109 = fpext float %108 to double
%110 = fsub double %107, %109
%111 = fdiv double %104, %110
%112 = fptrunc double %111 to float
store float %112, float* %11
br label %113
113: ; preds = %100, %92
%114 = load float, float* %7
%115 = load float, float* %13
%116 = fcmp oeq float %114, %115
br i1 %116, label %117, label %125
117: ; preds = %113
%118 = load float, float* %8
%119 = load float, float* %9
%120 = fsub float %118, %119
%121 = load float, float* %13
%122 = load float, float* %14
%123 = fsub float %121, %122
%124 = fdiv float %120, %123
store float %124, float* %10
br label %152
125: ; preds = %113
%126 = load float, float* %8
%127 = load float, float* %13
%128 = fcmp oeq float %126, %127
br i1 %128, label %129, label %140
129: ; preds = %125
%130 = load float, float* %9
%131 = load float, float* %7
%132 = fsub float %130, %131
%133 = load float, float* %13
%134 = load float, float* %14
%135 = fsub float %133, %134
%136 = fdiv float %132, %135
%137 = fpext float %136 to double
%138 = fadd double 2.000000e+00, %137
%139 = fptrunc double %138 to float
store float %139, float* %10
br label %151
140: ; preds = %125
%141 = load float, float* %7
%142 = load float, float* %8
%143 = fsub float %141, %142
%144 = load float, float* %13
%145 = load float, float* %14
%146 = fsub float %144, %145
%147 = fdiv float %143, %146
%148 = fpext float %147 to double
%149 = fadd double 4.000000e+00, %148
%150 = fptrunc double %149 to float
store float %150, float* %10
br label %151
151: ; preds = %140, %129
br label %152
152: ; preds = %151, %117
%153 = load float, float* %10
%154 = fdiv float %153, 6.000000e+00
store float %154, float* %10
%155 = load float, float* %10
%156 = fcmp olt float %155, 0.000000e+00
br i1 %156, label %157, label %160
157: ; preds = %152
%158 = load float, float* %10
%159 = fadd float %158, 1.000000e+00
store float %159, float* %10
br label %160
160: ; preds = %157, %152
br label %161
161: ; preds = %160, %82
%162 = call float* @malloc(i32 12)
store float* %162, float** %15
%163 = load float, float* %10
%164 = load float*, float** %15
%165 = getelementptr inbounds float, float* %164, i64 0
store float %163, float* %165
%166 = load float, float* %11
%167 = load float*, float** %15
%168 = getelementptr inbounds float, float* %167, i64 1
store float %166, float* %168
%169 = load float, float* %12
%170 = load float*, float** %15
%171 = getelementptr inbounds float, float* %170, i64 2
store float %169, float* %171
%172 = load float*, float** %15
ret float* %172
}

LLVM IR (-O2):
define noalias float* @RGBtoHSL(i32 %0, i32 %1, i32 %2) {
%4 = sitofp i32 %1 to float
%5 = fdiv float %4, 2.550000e+02
%6 = insertelement <2 x i32> poison, i32 %0, i64 0
%7 = insertelement <2 x i32> %6, i32 %2, i64 1
%8 = sitofp <2 x i32> %7 to <2 x float>
%9 = fdiv <2 x float> %8, <float 2.550000e+02, float 2.550000e+02>
%10 = extractelement <2 x float> %9, i64 1
%11 = fcmp ogt float %5, %10
%12 = select i1 %11, float %5, float %10
%13 = extractelement <2 x float> %9, i64 0
%14 = fcmp ogt float %13, %12
%15 = select i1 %14, float %13, float %12
%16 = fcmp olt float %5, %10
%17 = select i1 %16, float %5, float %10
%18 = fcmp olt float %13, %17
%19 = select i1 %18, float %13, float %17
%20 = insertelement <2 x float> poison, float %5, i64 0
%21 = shufflevector <2 x float> %20, <2 x float> poison, <2 x i32> zeroinitializer
%22 = fcmp oeq <2 x float> %21, %9
%23 = shufflevector <2 x i1> %22, <2 x i1> poison, <2 x i32> <i32 1, i32 undef>
%24 = and <2 x i1> %22, %23
%25 = extractelement <2 x i1> %24, i64 0
br i1 %25, label %66, label %26
26: ; preds = %3
%27 = fadd float %19, %15
%28 = fmul float %27, 5.000000e-01
%29 = fcmp olt float %28, 5.000000e-01
%30 = fsub float %15, %19
br i1 %29, label %31, label %33
31: ; preds = %26
%32 = fdiv float %30, %27
br label %41
33: ; preds = %26
%34 = fpext float %30 to double
%35 = fpext float %15 to double
%36 = fsub double 2.000000e+00, %35
%37 = fpext float %19 to double
%38 = fsub double %36, %37
%39 = fdiv double %34, %38
%40 = fptrunc double %39 to float
br label %41
41: ; preds = %33, %31
%42 = phi float [ %32, %31 ], [ %40, %33 ]
%43 = fcmp oeq float %13, %15
br i1 %43, label %44, label %48
44: ; preds = %41
%45 = fsub float %5, %10
%46 = fsub float %15, %19
%47 = fdiv float %45, %46
br label %60
48: ; preds = %41
%49 = fcmp oeq float %5, %15
br i1 %49, label %50, label %55
50: ; preds = %48
%51 = fsub float %10, %13
%52 = fsub float %15, %19
%53 = fdiv float %51, %52
%54 = fadd float %53, 2.000000e+00
br label %60
55: ; preds = %48
%56 = fsub float %13, %5
%57 = fsub float %15, %19
%58 = fdiv float %56, %57
%59 = fadd float %58, 4.000000e+00
br label %60
60: ; preds = %50, %55, %44
%61 = phi float [ %47, %44 ], [ %54, %50 ], [ %59, %55 ]
%62 = fdiv float %61, 6.000000e+00
%63 = fcmp olt float %62, 0.000000e+00
br i1 %63, label %64, label %66
64: ; preds = %60
%65 = fadd float %62, 1.000000e+00
br label %66
66: ; preds = %3, %60, %64
%67 = phi float [ %28, %64 ], [ %28, %60 ], [ %13, %3 ]
%68 = phi float [ %42, %64 ], [ %42, %60 ], [ 0.000000e+00, %3 ]
%69 = phi float [ %65, %64 ], [ %62, %60 ], [ 0.000000e+00, %3 ]
%70 = tail call float* @malloc(i32 12)
store float %69, float* %70
%71 = getelementptr inbounds float, float* %70, i64 1
store float %68, float* %71
%72 = getelementptr inbounds float, float* %70, i64 2
store float %67, float* %72
ret float* %70
}