int TurnCondition(float Phi2, float Phi2S, float Psi2, float Psi2S, float Phi3,
                  float Phi3S, float Psi3, float Psi3S, float Range1,
                  float Range2) {
  if ((((Phi2 >= (Phi2S - Range2)) && (Phi2 <= (Phi2S + Range2))) == 1 &&
       ((Psi2 >= (Psi2S - Range1)) && (Psi2 <= (Psi2S + Range1))) == 1 &&
       ((Phi3 >= (Phi3S - Range1)) && (Phi3 <= (Phi3S + Range1))) == 1 &&
       ((Psi3 >= (Psi3S - Range1)) && (Psi3 <= (Psi3S + Range1))) == 1) ||
      (((Phi2 >= (Phi2S - Range1)) && (Phi2 <= (Phi2S + Range1))) == 1 &&
       ((Psi2 >= (Psi2S - Range2)) && (Psi2 <= (Psi2S + Range2))) == 1 &&
       ((Phi3 >= (Phi3S - Range1)) && (Phi3 <= (Phi3S + Range1))) == 1 &&
       ((Psi3 >= (Psi3S - Range1)) && (Psi3 <= (Psi3S + Range1))) == 1) ||
      (((Phi2 >= (Phi2S - Range1)) && (Phi2 <= (Phi2S + Range1))) == 1 &&
       ((Psi2 >= (Psi2S - Range1)) && (Psi2 <= (Psi2S + Range1))) == 1 &&
       ((Phi3 >= (Phi3S - Range2)) && (Phi3 <= (Phi3S + Range2))) == 1 &&
       ((Psi3 >= (Psi3S - Range1)) && (Psi3 <= (Psi3S + Range1))) == 1) ||
      (((Phi2 >= (Phi2S - Range1)) && (Phi2 <= (Phi2S + Range1))) == 1 &&
       ((Psi2 >= (Psi2S - Range1)) && (Psi2 <= (Psi2S + Range1))) == 1 &&
       ((Phi3 >= (Phi3S - Range1)) && (Phi3 <= (Phi3S + Range1))) == 1 &&
       ((Psi3 >= (Psi3S - Range2)) && (Psi3 <= (Psi3S + Range2))) == 1))
    return (1);
  return (0);
}


x86 assembly (clang, -O0):
<TurnCondition>:
push   %rbp
mov    %rsp,%rbp
movss  0x18(%rbp),%xmm8
movss  0x10(%rbp),%xmm8
movss  %xmm0,-0x8(%rbp)
movss  %xmm1,-0xc(%rbp)
movss  %xmm2,-0x10(%rbp)
movss  %xmm3,-0x14(%rbp)
movss  %xmm4,-0x18(%rbp)
movss  %xmm5,-0x1c(%rbp)
movss  %xmm6,-0x20(%rbp)
movss  %xmm7,-0x24(%rbp)
movss  -0x8(%rbp),%xmm0
movss  -0xc(%rbp),%xmm1
subss  0x18(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x25(%rbp)
jb     116d <TurnCondition+0x6d>
movss  -0x8(%rbp),%xmm1
movss  -0xc(%rbp),%xmm0
addss  0x18(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x25(%rbp)
mov    -0x25(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
jne    1250 <TurnCondition+0x150>
movss  -0x10(%rbp),%xmm0
movss  -0x14(%rbp),%xmm1
subss  0x10(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x26(%rbp)
jb     11b3 <TurnCondition+0xb3>
movss  -0x10(%rbp),%xmm1
movss  -0x14(%rbp),%xmm0
addss  0x10(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x26(%rbp)
mov    -0x26(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
jne    1250 <TurnCondition+0x150>
movss  -0x18(%rbp),%xmm0
movss  -0x1c(%rbp),%xmm1
subss  0x10(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x27(%rbp)
jb     11f9 <TurnCondition+0xf9>
movss  -0x18(%rbp),%xmm1
movss  -0x1c(%rbp),%xmm0
addss  0x10(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x27(%rbp)
mov    -0x27(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
jne    1250 <TurnCondition+0x150>
movss  -0x20(%rbp),%xmm0
movss  -0x24(%rbp),%xmm1
subss  0x10(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x28(%rbp)
jb     123f <TurnCondition+0x13f>
movss  -0x20(%rbp),%xmm1
movss  -0x24(%rbp),%xmm0
addss  0x10(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x28(%rbp)
mov    -0x28(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
je     1598 <TurnCondition+0x498>
movss  -0x8(%rbp),%xmm0
movss  -0xc(%rbp),%xmm1
subss  0x10(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x29(%rbp)
jb     1285 <TurnCondition+0x185>
movss  -0x8(%rbp),%xmm1
movss  -0xc(%rbp),%xmm0
addss  0x10(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x29(%rbp)
mov    -0x29(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
jne    1368 <TurnCondition+0x268>
movss  -0x10(%rbp),%xmm0
movss  -0x14(%rbp),%xmm1
subss  0x18(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x2a(%rbp)
jb     12cb <TurnCondition+0x1cb>
movss  -0x10(%rbp),%xmm1
movss  -0x14(%rbp),%xmm0
addss  0x18(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x2a(%rbp)
mov    -0x2a(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
jne    1368 <TurnCondition+0x268>
movss  -0x18(%rbp),%xmm0
movss  -0x1c(%rbp),%xmm1
subss  0x10(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x2b(%rbp)
jb     1311 <TurnCondition+0x211>
movss  -0x18(%rbp),%xmm1
movss  -0x1c(%rbp),%xmm0
addss  0x10(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x2b(%rbp)
mov    -0x2b(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
jne    1368 <TurnCondition+0x268>
movss  -0x20(%rbp),%xmm0
movss  -0x24(%rbp),%xmm1
subss  0x10(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x2c(%rbp)
jb     1357 <TurnCondition+0x257>
movss  -0x20(%rbp),%xmm1
movss  -0x24(%rbp),%xmm0
addss  0x10(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x2c(%rbp)
mov    -0x2c(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
je     1598 <TurnCondition+0x498>
movss  -0x8(%rbp),%xmm0
movss  -0xc(%rbp),%xmm1
subss  0x10(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x2d(%rbp)
jb     139d <TurnCondition+0x29d>
movss  -0x8(%rbp),%xmm1
movss  -0xc(%rbp),%xmm0
addss  0x10(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x2d(%rbp)
mov    -0x2d(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
jne    1480 <TurnCondition+0x380>
movss  -0x10(%rbp),%xmm0
movss  -0x14(%rbp),%xmm1
subss  0x10(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x2e(%rbp)
jb     13e3 <TurnCondition+0x2e3>
movss  -0x10(%rbp),%xmm1
movss  -0x14(%rbp),%xmm0
addss  0x10(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x2e(%rbp)
mov    -0x2e(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
jne    1480 <TurnCondition+0x380>
movss  -0x18(%rbp),%xmm0
movss  -0x1c(%rbp),%xmm1
subss  0x18(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x2f(%rbp)
jb     1429 <TurnCondition+0x329>
movss  -0x18(%rbp),%xmm1
movss  -0x1c(%rbp),%xmm0
addss  0x18(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x2f(%rbp)
mov    -0x2f(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
jne    1480 <TurnCondition+0x380>
movss  -0x20(%rbp),%xmm0
movss  -0x24(%rbp),%xmm1
subss  0x10(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x30(%rbp)
jb     146f <TurnCondition+0x36f>
movss  -0x20(%rbp),%xmm1
movss  -0x24(%rbp),%xmm0
addss  0x10(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x30(%rbp)
mov    -0x30(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
je     1598 <TurnCondition+0x498>
movss  -0x8(%rbp),%xmm0
movss  -0xc(%rbp),%xmm1
subss  0x10(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x31(%rbp)
jb     14b5 <TurnCondition+0x3b5>
movss  -0x8(%rbp),%xmm1
movss  -0xc(%rbp),%xmm0
addss  0x10(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x31(%rbp)
mov    -0x31(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
jne    15a4 <TurnCondition+0x4a4>
movss  -0x10(%rbp),%xmm0
movss  -0x14(%rbp),%xmm1
subss  0x10(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x32(%rbp)
jb     14fb <TurnCondition+0x3fb>
movss  -0x10(%rbp),%xmm1
movss  -0x14(%rbp),%xmm0
addss  0x10(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x32(%rbp)
mov    -0x32(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
jne    15a4 <TurnCondition+0x4a4>
movss  -0x18(%rbp),%xmm0
movss  -0x1c(%rbp),%xmm1
subss  0x10(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x33(%rbp)
jb     1541 <TurnCondition+0x441>
movss  -0x18(%rbp),%xmm1
movss  -0x1c(%rbp),%xmm0
addss  0x10(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x33(%rbp)
mov    -0x33(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
jne    15a4 <TurnCondition+0x4a4>
movss  -0x20(%rbp),%xmm0
movss  -0x24(%rbp),%xmm1
subss  0x18(%rbp),%xmm1
xor    %eax,%eax
ucomiss %xmm1,%xmm0
mov    %al,-0x34(%rbp)
jb     1587 <TurnCondition+0x487>
movss  -0x20(%rbp),%xmm1
movss  -0x24(%rbp),%xmm0
addss  0x18(%rbp),%xmm0
ucomiss %xmm1,%xmm0
setae  %al
mov    %al,-0x34(%rbp)
mov    -0x34(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
cmp    $0x1,%eax
jne    15a4 <TurnCondition+0x4a4>
movl   $0x1,-0x4(%rbp)
jmp    15ab <TurnCondition+0x4ab>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<TurnCondition>:
movss  0x10(%rsp),%xmm8
movss  0x8(%rsp),%xmm9
movaps %xmm1,%xmm10
subss  %xmm8,%xmm10
ucomiss %xmm10,%xmm0
jb     118c <TurnCondition+0x8c>
movaps %xmm1,%xmm10
addss  %xmm8,%xmm10
ucomiss %xmm0,%xmm10
jb     118c <TurnCondition+0x8c>
movaps %xmm3,%xmm10
subss  %xmm9,%xmm10
ucomiss %xmm10,%xmm2
jb     118c <TurnCondition+0x8c>
movaps %xmm3,%xmm10
addss  %xmm9,%xmm10
ucomiss %xmm2,%xmm10
jb     118c <TurnCondition+0x8c>
movaps %xmm5,%xmm10
subss  %xmm9,%xmm10
ucomiss %xmm10,%xmm4
jb     118c <TurnCondition+0x8c>
movaps %xmm5,%xmm10
addss  %xmm9,%xmm10
ucomiss %xmm4,%xmm10
jb     118c <TurnCondition+0x8c>
movaps %xmm7,%xmm10
subss  %xmm9,%xmm10
ucomiss %xmm10,%xmm6
jb     118c <TurnCondition+0x8c>
movaps %xmm7,%xmm10
addss  %xmm9,%xmm10
mov    $0x1,%eax
ucomiss %xmm6,%xmm10
jb     118c <TurnCondition+0x8c>
ret
movaps %xmm1,%xmm10
subss  %xmm9,%xmm10
ucomiss %xmm10,%xmm0
jb     128b <TurnCondition+0x18b>
addss  %xmm9,%xmm1
ucomiss %xmm0,%xmm1
jb     128b <TurnCondition+0x18b>
movaps %xmm3,%xmm0
subss  %xmm8,%xmm0
ucomiss %xmm0,%xmm2
jb     1200 <TurnCondition+0x100>
movaps %xmm3,%xmm0
addss  %xmm8,%xmm0
ucomiss %xmm2,%xmm0
jb     1200 <TurnCondition+0x100>
movaps %xmm5,%xmm0
subss  %xmm9,%xmm0
ucomiss %xmm0,%xmm4
jb     1200 <TurnCondition+0x100>
movaps %xmm5,%xmm0
addss  %xmm9,%xmm0
ucomiss %xmm4,%xmm0
jb     1200 <TurnCondition+0x100>
movaps %xmm7,%xmm0
subss  %xmm9,%xmm0
ucomiss %xmm0,%xmm6
jb     1200 <TurnCondition+0x100>
movaps %xmm7,%xmm0
addss  %xmm9,%xmm0
mov    $0x1,%eax
ucomiss %xmm6,%xmm0
jae    118b <TurnCondition+0x8b>
movaps %xmm3,%xmm0
subss  %xmm9,%xmm0
ucomiss %xmm0,%xmm2
jb     128b <TurnCondition+0x18b>
addss  %xmm9,%xmm3
ucomiss %xmm2,%xmm3
jb     128b <TurnCondition+0x18b>
movaps %xmm5,%xmm0
subss  %xmm8,%xmm0
ucomiss %xmm0,%xmm4
jb     1254 <TurnCondition+0x154>
movaps %xmm5,%xmm0
addss  %xmm8,%xmm0
ucomiss %xmm4,%xmm0
jb     1254 <TurnCondition+0x154>
movaps %xmm7,%xmm0
subss  %xmm9,%xmm0
ucomiss %xmm0,%xmm6
jb     1254 <TurnCondition+0x154>
movaps %xmm7,%xmm0
addss  %xmm9,%xmm0
mov    $0x1,%eax
ucomiss %xmm6,%xmm0
jae    118b <TurnCondition+0x8b>
movaps %xmm5,%xmm0
subss  %xmm9,%xmm0
ucomiss %xmm0,%xmm4
jb     128b <TurnCondition+0x18b>
addss  %xmm9,%xmm5
ucomiss %xmm4,%xmm5
jb     128b <TurnCondition+0x18b>
movaps %xmm7,%xmm0
subss  %xmm8,%xmm0
ucomiss %xmm0,%xmm6
jb     128b <TurnCondition+0x18b>
addss  %xmm8,%xmm7
mov    $0x1,%eax
ucomiss %xmm6,%xmm7
jae    118b <TurnCondition+0x8b>
xor    %eax,%eax
ret

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

LLVM IR (-O2):
define i32 @TurnCondition(float %0, float %1, float %2, float %3, float %4, float %5, float %6, float %7, float %8, float %9) {
%11 = fsub float %1, %9
%12 = fcmp ole float %11, %0
%13 = fadd float %1, %9
%14 = fcmp oge float %13, %0
%15 = and i1 %12, %14
br i1 %15, label %16, label %34
16: ; preds = %10
%17 = fsub float %3, %8
%18 = fcmp ole float %17, %2
%19 = fadd float %3, %8
%20 = fcmp oge float %19, %2
%21 = and i1 %18, %20
br i1 %21, label %22, label %34
22: ; preds = %16
%23 = fsub float %5, %8
%24 = fcmp ole float %23, %4
%25 = fadd float %5, %8
%26 = fcmp oge float %25, %4
%27 = and i1 %24, %26
br i1 %27, label %28, label %34
28: ; preds = %22
%29 = fsub float %7, %8
%30 = fcmp ole float %29, %6
%31 = fadd float %7, %8
%32 = fcmp oge float %31, %6
%33 = and i1 %30, %32
br i1 %33, label %89, label %34
34: ; preds = %28, %22, %16, %10
%35 = fsub float %1, %8
%36 = fcmp ole float %35, %0
%37 = fadd float %1, %8
%38 = fcmp oge float %37, %0
%39 = and i1 %36, %38
br i1 %39, label %40, label %88
40: ; preds = %34
%41 = fsub float %3, %9
%42 = fcmp ole float %41, %2
%43 = fadd float %3, %9
%44 = fcmp oge float %43, %2
%45 = and i1 %42, %44
br i1 %45, label %46, label %58
46: ; preds = %40
%47 = fsub float %5, %8
%48 = fcmp ole float %47, %4
%49 = fadd float %5, %8
%50 = fcmp oge float %49, %4
%51 = and i1 %48, %50
br i1 %51, label %52, label %58
52: ; preds = %46
%53 = fsub float %7, %8
%54 = fcmp ole float %53, %6
%55 = fadd float %7, %8
%56 = fcmp oge float %55, %6
%57 = and i1 %54, %56
br i1 %57, label %89, label %58
58: ; preds = %52, %46, %40
%59 = fsub float %3, %8
%60 = fcmp ole float %59, %2
%61 = fadd float %3, %8
%62 = fcmp oge float %61, %2
%63 = and i1 %60, %62
br i1 %63, label %64, label %88
64: ; preds = %58
%65 = fsub float %5, %9
%66 = fcmp ole float %65, %4
%67 = fadd float %5, %9
%68 = fcmp oge float %67, %4
%69 = and i1 %66, %68
br i1 %69, label %70, label %76
70: ; preds = %64
%71 = fsub float %7, %8
%72 = fcmp ole float %71, %6
%73 = fadd float %7, %8
%74 = fcmp oge float %73, %6
%75 = and i1 %72, %74
br i1 %75, label %89, label %76
76: ; preds = %70, %64
%77 = fsub float %5, %8
%78 = fcmp ole float %77, %4
%79 = fadd float %5, %8
%80 = fcmp oge float %79, %4
%81 = and i1 %78, %80
br i1 %81, label %82, label %88
82: ; preds = %76
%83 = fsub float %7, %9
%84 = fcmp ole float %83, %6
%85 = fadd float %7, %9
%86 = fcmp oge float %85, %6
%87 = and i1 %84, %86
br i1 %87, label %89, label %88
88: ; preds = %58, %34, %82, %76
br label %89
89: ; preds = %28, %52, %70, %82, %88
%90 = phi i32 [ 0, %88 ], [ 1, %82 ], [ 1, %70 ], [ 1, %52 ], [ 1, %28 ]
ret i32 %90
}