#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 */
scalar_t__ fabs(float);
float max_star3(float delta1, float delta2) {
  register float diff;
  diff = (float)fabs(delta2 - delta1);
  if (delta1 > delta2) {
    if (diff > 5.6000)
      return (delta1);
    else if (diff > 1.8300) {
      if (diff > 3.1300) {
        if (diff > 4.0800)
          return (delta1 + 0.01516612536801 +
                  -0.00860202759280 * (diff - 4.0800));
        else
          return (delta1 + 0.04088914377547 +
                  -0.02739265095522 * (diff - 3.1300));
      } else {
        if (diff > 2.4100)
          return (delta1 + 0.08360822736113 +
                  -0.06002650498009 * (diff - 2.4100));
        else
          return (delta1 + 0.14607646552283 +
                  -0.10822110027877 * (diff - 1.8300));
      }
    } else {
      if (diff > 0.8500) {
        if (diff > 1.3100)
          return (delta1 + 0.23567520254575 +
                  -0.17326680196715 * (diff - 1.3100));
        else
          return (delta1 + 0.35256506844219 +
                  -0.25432579542705 * (diff - 0.8500));
      } else {
        if (diff > 0.4200)
          return (delta1 + 0.50153699381775 +
                  -0.34691145436176 * (diff - 0.4200));
        else
          return (delta1 + 0.68954718055995 + -0.44788139700522 * (diff - 0));
      }
    }
  } else {
    if (diff > 5.6000)
      return (delta2);
    else if (diff > 1.8300) {
      if (diff > 3.1300) {
        if (diff > 4.0800)
          return (delta2 + 0.01516612536801 +
                  -0.00860202759280 * (diff - 4.0800));
        else
          return (delta2 + 0.04088914377547 +
                  -0.02739265095522 * (diff - 3.1300));
      } else {
        if (diff > 2.4100)
          return (delta2 + 0.08360822736113 +
                  -0.06002650498009 * (diff - 2.4100));
        else
          return (delta2 + 0.14607646552283 +
                  -0.10822110027877 * (diff - 1.8300));
      }
    } else {
      if (diff > 0.8500) {
        if (diff > 1.3100)
          return (delta2 + 0.23567520254575 +
                  -0.17326680196715 * (diff - 1.3100));
        else
          return (delta2 + 0.35256506844219 +
                  -0.25432579542705 * (diff - 0.8500));
      } else {
        if (diff > 0.4200)
          return (delta2 + 0.50153699381775 +
                  -0.34691145436176 * (diff - 0.4200));
        else
          return (delta2 + 0.68954718055995 + -0.44788139700522 * (diff - 0));
      }
    }
  }
}


x86 assembly (clang, -O0):
<max_star3>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movss  %xmm0,-0x8(%rbp)
movss  %xmm1,-0xc(%rbp)
movss  -0xc(%rbp),%xmm0
subss  -0x8(%rbp),%xmm0
call   1030 <fabs@plt>
cvtsi2ss %rax,%xmm0
movss  %xmm0,-0x10(%rbp)
movss  -0x8(%rbp),%xmm0
ucomiss -0xc(%rbp),%xmm0
jbe    146c <max_star3+0x35c>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xea5(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1174 <max_star3+0x64>
movss  -0x8(%rbp),%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xe83(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1300 <max_star3+0x1f0>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xec8(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1255 <max_star3+0x145>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xedd(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    120d <max_star3+0xfd>
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xee2(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xead(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0xeb9(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xe8a(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xe35(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0xe61(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xe0a(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    12b8 <max_star3+0x1a8>
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xe0f(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xdda(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0xde6(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xdb7(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xd2a(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0xd8e(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xcff(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    13c6 <max_star3+0x2b6>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xd14(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    137e <max_star3+0x26e>
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xd19(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xce4(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0xcf0(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xcc1(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xc6c(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0xc98(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xc41(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1429 <max_star3+0x319>
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xc46(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xc11(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0xc1d(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xbee(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
xorps  %xmm2,%xmm2
subss  %xmm2,%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xbca(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xb83(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1496 <max_star3+0x386>
movss  -0xc(%rbp),%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xb61(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1622 <max_star3+0x512>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xba6(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1577 <max_star3+0x467>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xbbb(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    152f <max_star3+0x41f>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xbc0(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xb8b(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0xb97(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xb68(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xb13(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0xb3f(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xae8(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    15da <max_star3+0x4ca>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xaed(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xab8(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0xac4(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xa95(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa08(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0xa6c(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x9dd(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    16e8 <max_star3+0x5d8>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x9f2(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    16a0 <max_star3+0x590>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x9f7(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x9c2(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0x9ce(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x99f(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x94a(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0x976(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x91f(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    174b <max_star3+0x63b>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x924(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x8ef(%rip),%xmm2
subsd  %xmm2,%xmm0
movsd  0x8fb(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
jmp    1789 <max_star3+0x679>
movss  -0xc(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x8cc(%rip),%xmm0
addsd  %xmm0,%xmm1
movss  -0x10(%rbp),%xmm0
xorps  %xmm2,%xmm2
subss  %xmm2,%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x8a8(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
movss  -0x4(%rbp),%xmm0
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<max_star3>:
push   %rax
movss  %xmm1,0x4(%rsp)
movaps %xmm0,%xmm2
movss  %xmm0,(%rsp)
movaps %xmm1,%xmm0
subss  %xmm2,%xmm0
call   1030 <fabs@plt>
movss  (%rsp),%xmm3
movss  0x4(%rsp),%xmm0
xorps  %xmm1,%xmm1
cvtsi2ss %rax,%xmm1
ucomiss %xmm0,%xmm3
xorps  %xmm2,%xmm2
cvtss2sd %xmm1,%xmm2
jbe    1159 <max_star3+0x49>
ucomisd 0xeae(%rip),%xmm2
jbe    11b1 <max_star3+0xa1>
movaps %xmm3,%xmm0
pop    %rax
ret
ucomisd 0xe9f(%rip),%xmm2
ja     131c <max_star3+0x20c>
ucomisd 0xe99(%rip),%xmm2
jbe    11f7 <max_star3+0xe7>
ucomisd 0xf03(%rip),%xmm2
jbe    126f <max_star3+0x15f>
ucomisd 0xf35(%rip),%xmm2
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
ja     11da <max_star3+0xca>
addsd  0xf2c(%rip),%xmm1
addsd  0xf2c(%rip),%xmm2
mulsd  0xf2c(%rip),%xmm2
jmp    1311 <max_star3+0x201>
ucomisd 0xe4f(%rip),%xmm2
jbe    1233 <max_star3+0x123>
ucomisd 0xebd(%rip),%xmm2
jbe    129a <max_star3+0x18a>
ucomisd 0xeef(%rip),%xmm2
xorps  %xmm1,%xmm1
cvtss2sd %xmm3,%xmm1
jbe    1194 <max_star3+0x84>
addsd  0xefe(%rip),%xmm1
addsd  0xefe(%rip),%xmm2
mulsd  0xefe(%rip),%xmm2
jmp    1311 <max_star3+0x201>
ucomisd 0xe11(%rip),%xmm2
jbe    12c5 <max_star3+0x1b5>
ucomisd 0xe3b(%rip),%xmm2
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
ja     1252 <max_star3+0x142>
addsd  0xe32(%rip),%xmm1
addsd  0xe32(%rip),%xmm2
mulsd  0xe32(%rip),%xmm2
jmp    1311 <max_star3+0x201>
ucomisd 0xdd5(%rip),%xmm2
jbe    12e8 <max_star3+0x1d8>
ucomisd 0xdff(%rip),%xmm2
xorps  %xmm1,%xmm1
cvtss2sd %xmm3,%xmm1
jbe    1216 <max_star3+0x106>
addsd  0xe0e(%rip),%xmm1
addsd  0xe0e(%rip),%xmm2
mulsd  0xe0e(%rip),%xmm2
jmp    1311 <max_star3+0x201>
ucomisd 0xe11(%rip),%xmm2
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
ja     12ab <max_star3+0x19b>
addsd  0xe08(%rip),%xmm1
addsd  0xe08(%rip),%xmm2
mulsd  0xe08(%rip),%xmm2
jmp    1311 <max_star3+0x201>
ucomisd 0xde6(%rip),%xmm2
xorps  %xmm1,%xmm1
cvtss2sd %xmm3,%xmm1
jbe    1280 <max_star3+0x170>
addsd  0xdf5(%rip),%xmm1
addsd  0xdf5(%rip),%xmm2
mulsd  0xdf5(%rip),%xmm2
jmp    1311 <max_star3+0x201>
ucomisd 0xd4b(%rip),%xmm2
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
ja     12f9 <max_star3+0x1e9>
addsd  0xd42(%rip),%xmm1
mulsd  0xd42(%rip),%xmm2
jmp    1311 <max_star3+0x201>
ucomisd 0xd28(%rip),%xmm2
xorps  %xmm1,%xmm1
cvtss2sd %xmm3,%xmm1
jbe    12d6 <max_star3+0x1c6>
addsd  0xd2f(%rip),%xmm1
addsd  0xd2f(%rip),%xmm2
mulsd  0xd2f(%rip),%xmm2
addsd  %xmm1,%xmm2
xorps  %xmm0,%xmm0
cvtsd2ss %xmm2,%xmm0
pop    %rax
ret

LLVM IR (-O0):
define float @max_star3(float %0, float %1) {
%3 = alloca float
%4 = alloca float
%5 = alloca float
%6 = alloca float
store float %0, float* %4
store float %1, float* %5
%7 = load float, float* %5
%8 = load float, float* %4
%9 = fsub float %7, %8
%10 = call i64 @fabs(float %9)
%11 = sitofp i64 %10 to float
store float %11, float* %6
%12 = load float, float* %4
%13 = load float, float* %5
%14 = fcmp ogt float %12, %13
br i1 %14, label %15, label %121
15: ; preds = %2
%16 = load float, float* %6
%17 = fpext float %16 to double
%18 = fcmp ogt double %17, 5.600000e+00
br i1 %18, label %19, label %21
19: ; preds = %15
%20 = load float, float* %4
store float %20, float* %3
br label %227
21: ; preds = %15
%22 = load float, float* %6
%23 = fpext float %22 to double
%24 = fcmp ogt double %23, 1.830000e+00
br i1 %24, label %25, label %73
25: ; preds = %21
%26 = load float, float* %6
%27 = fpext float %26 to double
%28 = fcmp ogt double %27, 3.130000e+00
br i1 %28, label %29, label %51
29: ; preds = %25
%30 = load float, float* %6
%31 = fpext float %30 to double
%32 = fcmp ogt double %31, 4.080000e+00
br i1 %32, label %33, label %42
33: ; preds = %29
%34 = load float, float* %4
%35 = fpext float %34 to double
%36 = fadd double %35, 0x3F8F0F6AE3B37C08
%37 = load float, float* %6
%38 = fpext float %37 to double
%39 = fsub double %38, 4.080000e+00
%40 = call double @llvm.fmuladd.f64(double 0xBF819DF09985DE67, double %39, double %36)
%41 = fptrunc double %40 to float
store float %41, float* %3
br label %227
42: ; preds = %29
%43 = load float, float* %4
%44 = fpext float %43 to double
%45 = fadd double %44, 0x3FA4EF6BFE8DDE2A
%46 = load float, float* %6
%47 = fpext float %46 to double
%48 = fsub double %47, 3.130000e+00
%49 = call double @llvm.fmuladd.f64(double 0xBF9C0CD1B0037EB7, double %48, double %45)
%50 = fptrunc double %49 to float
store float %50, float* %3
br label %227
51: ; preds = %25
%52 = load float, float* %6
%53 = fpext float %52 to double
%54 = fcmp ogt double %53, 2.410000e+00
br i1 %54, label %55, label %64
55: ; preds = %51
%56 = load float, float* %4
%57 = fpext float %56 to double
%58 = fadd double %57, 0x3FB567594A314D4C
%59 = load float, float* %6
%60 = fpext float %59 to double
%61 = fsub double %60, 2.410000e+00
%62 = call double @llvm.fmuladd.f64(double 0xBFAEBBCB4790B9D1, double %61, double %58)
%63 = fptrunc double %62 to float
store float %63, float* %3
br label %227
64: ; preds = %51
%65 = load float, float* %4
%66 = fpext float %65 to double
%67 = fadd double %66, 0x3FC2B2A2351162C2
%68 = load float, float* %6
%69 = fpext float %68 to double
%70 = fsub double %69, 1.830000e+00
%71 = call double @llvm.fmuladd.f64(double 0xBFBBB460C66F385A, double %70, double %67)
%72 = fptrunc double %71 to float
store float %72, float* %3
br label %227
73: ; preds = %21
%74 = load float, float* %6
%75 = fpext float %74 to double
%76 = fcmp ogt double %75, 8.500000e-01
br i1 %76, label %77, label %99
77: ; preds = %73
%78 = load float, float* %6
%79 = fpext float %78 to double
%80 = fcmp ogt double %79, 1.310000e+00
br i1 %80, label %81, label %90
81: ; preds = %77
%82 = load float, float* %4
%83 = fpext float %82 to double
%84 = fadd double %83, 0x3FCE2A9AE3B4C20F
%85 = load float, float* %6
%86 = fpext float %85 to double
%87 = fsub double %86, 1.310000e+00
%88 = call double @llvm.fmuladd.f64(double 0xBFC62D9B47F738B2, double %87, double %84)
%89 = fptrunc double %88 to float
store float %89, float* %3
br label %227
90: ; preds = %77
%91 = load float, float* %4
%92 = fpext float %91 to double
%93 = fadd double %92, 0x3FD6906D13AAF511
%94 = load float, float* %6
%95 = fpext float %94 to double
%96 = fsub double %95, 8.500000e-01
%97 = call double @llvm.fmuladd.f64(double 0xBFD046DFB378DAFE, double %96, double %93)
%98 = fptrunc double %97 to float
store float %98, float* %3
br label %227
99: ; preds = %73
%100 = load float, float* %6
%101 = fpext float %100 to double
%102 = fcmp ogt double %101, 4.200000e-01
br i1 %102, label %103, label %112
103: ; preds = %99
%104 = load float, float* %4
%105 = fpext float %104 to double
%106 = fadd double %105, 0x3FE00C974F45CDF3
%107 = load float, float* %6
%108 = fpext float %107 to double
%109 = fsub double %108, 4.200000e-01
%110 = call double @llvm.fmuladd.f64(double 0xBFD633CC19C5DC0D, double %109, double %106)
%111 = fptrunc double %110 to float
store float %111, float* %3
br label %227
112: ; preds = %99
%113 = load float, float* %4
%114 = fpext float %113 to double
%115 = fadd double %114, 0x3FE610C53FB1BA4E
%116 = load float, float* %6
%117 = fsub float %116, 0.000000e+00
%118 = fpext float %117 to double
%119 = call double @llvm.fmuladd.f64(double 0xBFDCAA16BC27F318, double %118, double %115)
%120 = fptrunc double %119 to float
store float %120, float* %3
br label %227
121: ; preds = %2
%122 = load float, float* %6
%123 = fpext float %122 to double
%124 = fcmp ogt double %123, 5.600000e+00
br i1 %124, label %125, label %127
125: ; preds = %121
%126 = load float, float* %5
store float %126, float* %3
br label %227
127: ; preds = %121
%128 = load float, float* %6
%129 = fpext float %128 to double
%130 = fcmp ogt double %129, 1.830000e+00
br i1 %130, label %131, label %179
131: ; preds = %127
%132 = load float, float* %6
%133 = fpext float %132 to double
%134 = fcmp ogt double %133, 3.130000e+00
br i1 %134, label %135, label %157
135: ; preds = %131
%136 = load float, float* %6
%137 = fpext float %136 to double
%138 = fcmp ogt double %137, 4.080000e+00
br i1 %138, label %139, label %148
139: ; preds = %135
%140 = load float, float* %5
%141 = fpext float %140 to double
%142 = fadd double %141, 0x3F8F0F6AE3B37C08
%143 = load float, float* %6
%144 = fpext float %143 to double
%145 = fsub double %144, 4.080000e+00
%146 = call double @llvm.fmuladd.f64(double 0xBF819DF09985DE67, double %145, double %142)
%147 = fptrunc double %146 to float
store float %147, float* %3
br label %227
148: ; preds = %135
%149 = load float, float* %5
%150 = fpext float %149 to double
%151 = fadd double %150, 0x3FA4EF6BFE8DDE2A
%152 = load float, float* %6
%153 = fpext float %152 to double
%154 = fsub double %153, 3.130000e+00
%155 = call double @llvm.fmuladd.f64(double 0xBF9C0CD1B0037EB7, double %154, double %151)
%156 = fptrunc double %155 to float
store float %156, float* %3
br label %227
157: ; preds = %131
%158 = load float, float* %6
%159 = fpext float %158 to double
%160 = fcmp ogt double %159, 2.410000e+00
br i1 %160, label %161, label %170
161: ; preds = %157
%162 = load float, float* %5
%163 = fpext float %162 to double
%164 = fadd double %163, 0x3FB567594A314D4C
%165 = load float, float* %6
%166 = fpext float %165 to double
%167 = fsub double %166, 2.410000e+00
%168 = call double @llvm.fmuladd.f64(double 0xBFAEBBCB4790B9D1, double %167, double %164)
%169 = fptrunc double %168 to float
store float %169, float* %3
br label %227
170: ; preds = %157
%171 = load float, float* %5
%172 = fpext float %171 to double
%173 = fadd double %172, 0x3FC2B2A2351162C2
%174 = load float, float* %6
%175 = fpext float %174 to double
%176 = fsub double %175, 1.830000e+00
%177 = call double @llvm.fmuladd.f64(double 0xBFBBB460C66F385A, double %176, double %173)
%178 = fptrunc double %177 to float
store float %178, float* %3
br label %227
179: ; preds = %127
%180 = load float, float* %6
%181 = fpext float %180 to double
%182 = fcmp ogt double %181, 8.500000e-01
br i1 %182, label %183, label %205
183: ; preds = %179
%184 = load float, float* %6
%185 = fpext float %184 to double
%186 = fcmp ogt double %185, 1.310000e+00
br i1 %186, label %187, label %196
187: ; preds = %183
%188 = load float, float* %5
%189 = fpext float %188 to double
%190 = fadd double %189, 0x3FCE2A9AE3B4C20F
%191 = load float, float* %6
%192 = fpext float %191 to double
%193 = fsub double %192, 1.310000e+00
%194 = call double @llvm.fmuladd.f64(double 0xBFC62D9B47F738B2, double %193, double %190)
%195 = fptrunc double %194 to float
store float %195, float* %3
br label %227
196: ; preds = %183
%197 = load float, float* %5
%198 = fpext float %197 to double
%199 = fadd double %198, 0x3FD6906D13AAF511
%200 = load float, float* %6
%201 = fpext float %200 to double
%202 = fsub double %201, 8.500000e-01
%203 = call double @llvm.fmuladd.f64(double 0xBFD046DFB378DAFE, double %202, double %199)
%204 = fptrunc double %203 to float
store float %204, float* %3
br label %227
205: ; preds = %179
%206 = load float, float* %6
%207 = fpext float %206 to double
%208 = fcmp ogt double %207, 4.200000e-01
br i1 %208, label %209, label %218
209: ; preds = %205
%210 = load float, float* %5
%211 = fpext float %210 to double
%212 = fadd double %211, 0x3FE00C974F45CDF3
%213 = load float, float* %6
%214 = fpext float %213 to double
%215 = fsub double %214, 4.200000e-01
%216 = call double @llvm.fmuladd.f64(double 0xBFD633CC19C5DC0D, double %215, double %212)
%217 = fptrunc double %216 to float
store float %217, float* %3
br label %227
218: ; preds = %205
%219 = load float, float* %5
%220 = fpext float %219 to double
%221 = fadd double %220, 0x3FE610C53FB1BA4E
%222 = load float, float* %6
%223 = fsub float %222, 0.000000e+00
%224 = fpext float %223 to double
%225 = call double @llvm.fmuladd.f64(double 0xBFDCAA16BC27F318, double %224, double %221)
%226 = fptrunc double %225 to float
store float %226, float* %3
br label %227
227: ; preds = %218, %209, %196, %187, %170, %161, %148, %139, %125, %112, %103, %90, %81, %64, %55, %42, %33, %19
%228 = load float, float* %3
ret float %228
}

LLVM IR (-O2):
define float @max_star3(float %0, float %1) {
%3 = fsub float %1, %0
%4 = tail call i64 @fabs(float %3)
%5 = sitofp i64 %4 to float
%6 = fcmp ogt float %0, %1
%7 = fpext float %5 to double
%8 = fcmp ogt double %7, 5.600000e+00
br i1 %6, label %9, label %67
9: ; preds = %2
br i1 %8, label %125, label %10
10: ; preds = %9
%11 = fcmp ogt double %7, 1.830000e+00
br i1 %11, label %12, label %40
12: ; preds = %10
%13 = fcmp ogt double %7, 3.130000e+00
br i1 %13, label %14, label %27
14: ; preds = %12
%15 = fcmp ogt double %7, 4.080000e+00
%16 = fpext float %0 to double
br i1 %15, label %17, label %22
17: ; preds = %14
%18 = fadd double %16, 0x3F8F0F6AE3B37C08
%19 = fadd double %7, -4.080000e+00
%20 = tail call double @llvm.fmuladd.f64(double %19, double 0xBF819DF09985DE67, double %18)
%21 = fptrunc double %20 to float
br label %125
22: ; preds = %14
%23 = fadd double %16, 0x3FA4EF6BFE8DDE2A
%24 = fadd double %7, -3.130000e+00
%25 = tail call double @llvm.fmuladd.f64(double %24, double 0xBF9C0CD1B0037EB7, double %23)
%26 = fptrunc double %25 to float
br label %125
27: ; preds = %12
%28 = fcmp ogt double %7, 2.410000e+00
%29 = fpext float %0 to double
br i1 %28, label %30, label %35
30: ; preds = %27
%31 = fadd double %29, 0x3FB567594A314D4C
%32 = fadd double %7, -2.410000e+00
%33 = tail call double @llvm.fmuladd.f64(double %32, double 0xBFAEBBCB4790B9D1, double %31)
%34 = fptrunc double %33 to float
br label %125
35: ; preds = %27
%36 = fadd double %29, 0x3FC2B2A2351162C2
%37 = fadd double %7, -1.830000e+00
%38 = tail call double @llvm.fmuladd.f64(double %37, double 0xBFBBB460C66F385A, double %36)
%39 = fptrunc double %38 to float
br label %125
40: ; preds = %10
%41 = fcmp ogt double %7, 8.500000e-01
br i1 %41, label %42, label %55
42: ; preds = %40
%43 = fcmp ogt double %7, 1.310000e+00
%44 = fpext float %0 to double
br i1 %43, label %45, label %50
45: ; preds = %42
%46 = fadd double %44, 0x3FCE2A9AE3B4C20F
%47 = fadd double %7, -1.310000e+00
%48 = tail call double @llvm.fmuladd.f64(double %47, double 0xBFC62D9B47F738B2, double %46)
%49 = fptrunc double %48 to float
br label %125
50: ; preds = %42
%51 = fadd double %44, 0x3FD6906D13AAF511
%52 = fadd double %7, -8.500000e-01
%53 = tail call double @llvm.fmuladd.f64(double %52, double 0xBFD046DFB378DAFE, double %51)
%54 = fptrunc double %53 to float
br label %125
55: ; preds = %40
%56 = fcmp ogt double %7, 4.200000e-01
%57 = fpext float %0 to double
br i1 %56, label %58, label %63
58: ; preds = %55
%59 = fadd double %57, 0x3FE00C974F45CDF3
%60 = fadd double %7, -4.200000e-01
%61 = tail call double @llvm.fmuladd.f64(double %60, double 0xBFD633CC19C5DC0D, double %59)
%62 = fptrunc double %61 to float
br label %125
63: ; preds = %55
%64 = fadd double %57, 0x3FE610C53FB1BA4E
%65 = tail call double @llvm.fmuladd.f64(double %7, double 0xBFDCAA16BC27F318, double %64)
%66 = fptrunc double %65 to float
br label %125
67: ; preds = %2
br i1 %8, label %125, label %68
68: ; preds = %67
%69 = fcmp ogt double %7, 1.830000e+00
br i1 %69, label %70, label %98
70: ; preds = %68
%71 = fcmp ogt double %7, 3.130000e+00
br i1 %71, label %72, label %85
72: ; preds = %70
%73 = fcmp ogt double %7, 4.080000e+00
%74 = fpext float %1 to double
br i1 %73, label %75, label %80
75: ; preds = %72
%76 = fadd double %74, 0x3F8F0F6AE3B37C08
%77 = fadd double %7, -4.080000e+00
%78 = tail call double @llvm.fmuladd.f64(double %77, double 0xBF819DF09985DE67, double %76)
%79 = fptrunc double %78 to float
br label %125
80: ; preds = %72
%81 = fadd double %74, 0x3FA4EF6BFE8DDE2A
%82 = fadd double %7, -3.130000e+00
%83 = tail call double @llvm.fmuladd.f64(double %82, double 0xBF9C0CD1B0037EB7, double %81)
%84 = fptrunc double %83 to float
br label %125
85: ; preds = %70
%86 = fcmp ogt double %7, 2.410000e+00
%87 = fpext float %1 to double
br i1 %86, label %88, label %93
88: ; preds = %85
%89 = fadd double %87, 0x3FB567594A314D4C
%90 = fadd double %7, -2.410000e+00
%91 = tail call double @llvm.fmuladd.f64(double %90, double 0xBFAEBBCB4790B9D1, double %89)
%92 = fptrunc double %91 to float
br label %125
93: ; preds = %85
%94 = fadd double %87, 0x3FC2B2A2351162C2
%95 = fadd double %7, -1.830000e+00
%96 = tail call double @llvm.fmuladd.f64(double %95, double 0xBFBBB460C66F385A, double %94)
%97 = fptrunc double %96 to float
br label %125
98: ; preds = %68
%99 = fcmp ogt double %7, 8.500000e-01
br i1 %99, label %100, label %113
100: ; preds = %98
%101 = fcmp ogt double %7, 1.310000e+00
%102 = fpext float %1 to double
br i1 %101, label %103, label %108
103: ; preds = %100
%104 = fadd double %102, 0x3FCE2A9AE3B4C20F
%105 = fadd double %7, -1.310000e+00
%106 = tail call double @llvm.fmuladd.f64(double %105, double 0xBFC62D9B47F738B2, double %104)
%107 = fptrunc double %106 to float
br label %125
108: ; preds = %100
%109 = fadd double %102, 0x3FD6906D13AAF511
%110 = fadd double %7, -8.500000e-01
%111 = tail call double @llvm.fmuladd.f64(double %110, double 0xBFD046DFB378DAFE, double %109)
%112 = fptrunc double %111 to float
br label %125
113: ; preds = %98
%114 = fcmp ogt double %7, 4.200000e-01
%115 = fpext float %1 to double
br i1 %114, label %116, label %121
116: ; preds = %113
%117 = fadd double %115, 0x3FE00C974F45CDF3
%118 = fadd double %7, -4.200000e-01
%119 = tail call double @llvm.fmuladd.f64(double %118, double 0xBFD633CC19C5DC0D, double %117)
%120 = fptrunc double %119 to float
br label %125
121: ; preds = %113
%122 = fadd double %115, 0x3FE610C53FB1BA4E
%123 = tail call double @llvm.fmuladd.f64(double %7, double 0xBFDCAA16BC27F318, double %122)
%124 = fptrunc double %123 to float
br label %125
125: ; preds = %67, %9, %121, %116, %108, %103, %93, %88, %80, %75, %63, %58, %50, %45, %35, %30, %22, %17
%126 = phi float [ %21, %17 ], [ %26, %22 ], [ %34, %30 ], [ %39, %35 ], [ %49, %45 ], [ %54, %50 ], [ %62, %58 ], [ %66, %63 ], [ %79, %75 ], [ %84, %80 ], [ %92, %88 ], [ %97, %93 ], [ %107, %103 ], [ %112, %108 ], [ %120, %116 ], [ %124, %121 ], [ %0, %9 ], [ %1, %67 ]
ret float %126
}