#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 M_PI;
double atan(double);
int fabs(double);
int /*<<< orphan*/ printf(char *, double, double, double);
double sin(double);
void gt_agany(double xy, double yz, double *ag_vh, double *bsl_vh, double fr,
              double *aga) {
  if (xy > 0 && yz > 0) {
    *ag_vh = atan(yz / xy) * 180.0 / M_PI;
    *bsl_vh = yz / sin(*ag_vh * M_PI / 180.0);
    *aga = *ag_vh + fr;
  } else if (xy < 0 && yz > 0) {
    *ag_vh = 90 + fabs(atan(xy / yz) * 180.0 / M_PI);
    *bsl_vh = fabs(xy / sin(*ag_vh * M_PI / 180.0));
    *aga = *ag_vh + fr;
  } else if (xy < 0 && yz < 0) {
    *ag_vh = 180 + fabs(atan(yz / xy) * 180.0 / M_PI);
    *bsl_vh = fabs(yz / sin(*ag_vh * M_PI / 180.0));
    *aga = *ag_vh + fr;
  } else if (xy > 0 && yz < 0) {
    *ag_vh = 270 + fabs(atan(xy / yz) * 180.0 / M_PI);
    *bsl_vh = fabs(xy / sin(*ag_vh * M_PI / 180.0));
    *aga = *ag_vh + fr;
  } else if (xy == 0 && yz > 0) {
    *ag_vh = 90;
    *bsl_vh = yz;
    *aga = *ag_vh + fr;
  } else if (xy == 0 && yz < 0) {
    *ag_vh = 270;
    *bsl_vh = fabs(yz);
    *aga = *ag_vh + fr;
  } else if (xy > 0 && yz == 0) {
    *ag_vh = 360;
    *bsl_vh = xy;
    *aga = *ag_vh + fr;
  } else if (xy < 0 && yz == 0) {
    *ag_vh = 180;
    *bsl_vh = fabs(xy);
    *aga = *ag_vh + fr;
  }
  printf("xy=%f, yz=%f, fr=%f\n", xy, yz, fr);
  printf("*ag_vh=%f, *bsl_vh=%f, *aga=%f\n", *ag_vh, *bsl_vh, *aga);
}


x86 assembly (clang, -O0):
<gt_agany>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
mov    %rdi,-0x18(%rbp)
mov    %rsi,-0x20(%rbp)
movsd  %xmm2,-0x28(%rbp)
mov    %rdx,-0x30(%rbp)
movsd  -0x8(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1211 <gt_agany+0xd1>
movsd  -0x10(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1211 <gt_agany+0xd1>
movsd  -0x10(%rbp),%xmm0
divsd  -0x8(%rbp),%xmm0
call   1060 <atan@plt>
movsd  0xe62(%rip),%xmm1
mulsd  %xmm1,%xmm0
mov    0x2e3f(%rip),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x2e1a(%rip),%rax
mulsd  (%rax),%xmm0
movsd  0xe26(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1050 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x38(%rbp),%xmm0
divsd  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0x28(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    15fa <gt_agany+0x4ba>
xorps  %xmm0,%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    12d0 <gt_agany+0x190>
movsd  -0x10(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    12d0 <gt_agany+0x190>
movsd  -0x8(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1060 <atan@plt>
movsd  0xdb8(%rip),%xmm1
mulsd  %xmm1,%xmm0
mov    0x2d95(%rip),%rax
divsd  (%rax),%xmm0
call   1040 <fabs@plt>
add    $0x5a,%eax
cvtsi2sd %eax,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x2d64(%rip),%rax
mulsd  (%rax),%xmm0
movsd  0xd70(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1050 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x40(%rbp),%xmm0
divsd  %xmm1,%xmm0
call   1040 <fabs@plt>
cvtsi2sd %eax,%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0x28(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    15f5 <gt_agany+0x4b5>
xorps  %xmm0,%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    138d <gt_agany+0x24d>
xorps  %xmm0,%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    138d <gt_agany+0x24d>
movsd  -0x10(%rbp),%xmm0
divsd  -0x8(%rbp),%xmm0
call   1060 <atan@plt>
movsd  0xcfd(%rip),%xmm1
mulsd  %xmm1,%xmm0
mov    0x2cda(%rip),%rax
divsd  (%rax),%xmm0
call   1040 <fabs@plt>
add    $0xb4,%eax
cvtsi2sd %eax,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x2ca7(%rip),%rax
mulsd  (%rax),%xmm0
movsd  0xcb3(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1050 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x48(%rbp),%xmm0
divsd  %xmm1,%xmm0
call   1040 <fabs@plt>
cvtsi2sd %eax,%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0x28(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    15f0 <gt_agany+0x4b0>
movsd  -0x8(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    144e <gt_agany+0x30e>
xorps  %xmm0,%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    144e <gt_agany+0x30e>
movsd  -0x8(%rbp),%xmm0
divsd  -0x10(%rbp),%xmm0
call   1060 <atan@plt>
movsd  0xc3c(%rip),%xmm1
mulsd  %xmm1,%xmm0
mov    0x2c19(%rip),%rax
divsd  (%rax),%xmm0
call   1040 <fabs@plt>
add    $0x10e,%eax
cvtsi2sd %eax,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x2be6(%rip),%rax
mulsd  (%rax),%xmm0
movsd  0xbf2(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1050 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x50(%rbp),%xmm0
divsd  %xmm1,%xmm0
call   1040 <fabs@plt>
cvtsi2sd %eax,%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0x28(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    15eb <gt_agany+0x4ab>
movsd  -0x8(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    14af <gt_agany+0x36f>
jp     14af <gt_agany+0x36f>
movsd  -0x10(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    14af <gt_agany+0x36f>
mov    -0x18(%rbp),%rax
movsd  0xb94(%rip),%xmm0
movsd  %xmm0,(%rax)
movsd  -0x10(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0x28(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    15e6 <gt_agany+0x4a6>
movsd  -0x8(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1515 <gt_agany+0x3d5>
jp     1515 <gt_agany+0x3d5>
xorps  %xmm0,%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    1515 <gt_agany+0x3d5>
mov    -0x18(%rbp),%rax
movsd  0xb2f(%rip),%xmm0
movsd  %xmm0,(%rax)
movsd  -0x10(%rbp),%xmm0
call   1040 <fabs@plt>
cvtsi2sd %eax,%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0x28(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    15e1 <gt_agany+0x4a1>
movsd  -0x8(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1576 <gt_agany+0x436>
movsd  -0x10(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1576 <gt_agany+0x436>
jp     1576 <gt_agany+0x436>
mov    -0x18(%rbp),%rax
movsd  0xabd(%rip),%xmm0
movsd  %xmm0,(%rax)
movsd  -0x8(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0x28(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    15dc <gt_agany+0x49c>
xorps  %xmm0,%xmm0
ucomisd -0x8(%rbp),%xmm0
jbe    15d7 <gt_agany+0x497>
movsd  -0x10(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    15d7 <gt_agany+0x497>
jp     15d7 <gt_agany+0x497>
mov    -0x18(%rbp),%rax
movsd  0xa58(%rip),%xmm0
movsd  %xmm0,(%rax)
movsd  -0x8(%rbp),%xmm0
call   1040 <fabs@plt>
cvtsi2sd %eax,%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0x28(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    15dc <gt_agany+0x49c>
jmp    15e1 <gt_agany+0x4a1>
jmp    15e6 <gt_agany+0x4a6>
jmp    15eb <gt_agany+0x4ab>
jmp    15f0 <gt_agany+0x4b0>
jmp    15f5 <gt_agany+0x4b5>
jmp    15fa <gt_agany+0x4ba>
movsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm2
lea    0xa10(%rip),%rdi
call   1030 <printf@plt>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm2
lea    0xa01(%rip),%rdi
call   1030 <printf@plt>
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<gt_agany>:
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x18,%rsp
mov    %rdx,%r14
mov    %rsi,%r15
mov    %rdi,%rbx
movapd %xmm0,%xmm4
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm4
movsd  %xmm2,(%rsp)
movsd  %xmm1,0x10(%rsp)
movsd  %xmm4,0x8(%rsp)
jbe    11cc <gt_agany+0x8c>
ucomisd %xmm0,%xmm1
jbe    11cc <gt_agany+0x8c>
movapd %xmm1,%xmm0
divsd  %xmm4,%xmm0
call   1060 <atan@plt>
movsd  0xe72(%rip),%xmm1
mulsd  %xmm1,%xmm0
mov    0x2e4f(%rip),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,(%rbx)
mulsd  (%rax),%xmm0
divsd  %xmm1,%xmm0
call   1050 <sin@plt>
movsd  0x8(%rsp),%xmm4
movsd  0x10(%rsp),%xmm1
movsd  (%rsp),%xmm2
movapd %xmm1,%xmm3
divsd  %xmm0,%xmm3
jmp    12b6 <gt_agany+0x176>
ucomisd %xmm4,%xmm0
jbe    122c <gt_agany+0xec>
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
jbe    122c <gt_agany+0xec>
movapd %xmm4,%xmm0
divsd  %xmm1,%xmm0
call   1060 <atan@plt>
mulsd  0xe0f(%rip),%xmm0
mov    0x2df0(%rip),%r12
divsd  (%r12),%xmm0
call   1040 <fabs@plt>
add    $0x5a,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,(%rbx)
mulsd  (%r12),%xmm0
divsd  0xde1(%rip),%xmm0
call   1050 <sin@plt>
movsd  0x8(%rsp),%xmm1
jmp    1294 <gt_agany+0x154>
xorpd  %xmm0,%xmm0
ucomisd %xmm4,%xmm0
jbe    12fd <gt_agany+0x1bd>
ucomisd %xmm1,%xmm0
jbe    12fd <gt_agany+0x1bd>
movapd %xmm1,%xmm0
divsd  %xmm4,%xmm0
call   1060 <atan@plt>
mulsd  0xda7(%rip),%xmm0
mov    0x2d88(%rip),%r12
divsd  (%r12),%xmm0
call   1040 <fabs@plt>
add    $0xb4,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,(%rbx)
mulsd  (%r12),%xmm0
divsd  0xd77(%rip),%xmm0
call   1050 <sin@plt>
movsd  0x10(%rsp),%xmm1
divsd  %xmm0,%xmm1
movapd %xmm1,%xmm0
call   1040 <fabs@plt>
movsd  0x8(%rsp),%xmm4
movsd  0x10(%rsp),%xmm1
movsd  (%rsp),%xmm2
cvtsi2sd %eax,%xmm3
movsd  %xmm3,(%r15)
movsd  (%rbx),%xmm0
addsd  %xmm2,%xmm0
movsd  %xmm0,(%r14)
lea    0xd39(%rip),%rdi
movapd %xmm4,%xmm0
call   1030 <printf@plt>
movsd  (%rbx),%xmm0
movsd  (%r15),%xmm1
movsd  (%r14),%xmm2
lea    0xd30(%rip),%rdi
add    $0x18,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
jmp    1030 <printf@plt>
ucomisd %xmm0,%xmm4
jbe    133e <gt_agany+0x1fe>
xorpd  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    133e <gt_agany+0x1fe>
movapd %xmm4,%xmm0
divsd  %xmm1,%xmm0
call   1060 <atan@plt>
mulsd  0xcde(%rip),%xmm0
mov    0x2cbf(%rip),%r12
divsd  (%r12),%xmm0
call   1040 <fabs@plt>
add    $0x10e,%eax
jmp    1206 <gt_agany+0xc6>
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm4
jne    1366 <gt_agany+0x226>
jp     1366 <gt_agany+0x226>
ucomisd %xmm0,%xmm1
jbe    1366 <gt_agany+0x226>
movabs $0x4056800000000000,%rax
80 56 40
mov    %rax,(%rbx)
movapd %xmm1,%xmm3
jmp    12b6 <gt_agany+0x176>
ucomisd %xmm0,%xmm4
jne    13a8 <gt_agany+0x268>
jp     13a8 <gt_agany+0x268>
xorpd  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    13a8 <gt_agany+0x268>
movabs $0x4070e00000000000,%rax
e0 70 40
mov    %rax,(%rbx)
movapd %xmm1,%xmm0
call   1040 <fabs@plt>
movsd  0x8(%rsp),%xmm4
movsd  0x10(%rsp),%xmm1
cvtsi2sd %eax,%xmm3
movsd  (%rsp),%xmm2
jmp    12b6 <gt_agany+0x176>
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm4
jbe    13d5 <gt_agany+0x295>
ucomisd %xmm0,%xmm1
jne    13d5 <gt_agany+0x295>
jp     13d5 <gt_agany+0x295>
movabs $0x4076800000000000,%rax
80 76 40
mov    %rax,(%rbx)
movapd %xmm4,%xmm3
movsd  (%rsp),%xmm2
jmp    12b6 <gt_agany+0x176>
ucomisd %xmm4,%xmm0
movsd  (%rsp),%xmm2
jbe    12c8 <gt_agany+0x188>
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
jne    12c8 <gt_agany+0x188>
jp     12c8 <gt_agany+0x188>
movabs $0x4066800000000000,%rax
80 66 40
mov    %rax,(%rbx)
movapd %xmm4,%xmm0
jmp    129c <gt_agany+0x15c>

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

LLVM IR (-O2):
@M_PI = global double 0.000000e+00
@.str = [21 x i8] c"xy=%f, yz=%f, fr=%f\0A\00"
@.str.1 = [32 x i8] c"*ag_vh=%f, *bsl_vh=%f, *aga=%f\0A\00"
define void @gt_agany(double %0, double %1, double* nocapture %2, double* nocapture %3, double %4, double* nocapture %5) {
%7 = fcmp ogt double %0, 0.000000e+00
%8 = fcmp ogt double %1, 0.000000e+00
%9 = and i1 %7, %8
br i1 %9, label %10, label %21
10: ; preds = %6
%11 = fdiv double %1, %0
%12 = tail call double @atan(double %11)
%13 = fmul double %12, 1.800000e+02
%14 = load double, double* @M_PI
%15 = fdiv double %13, %14
store double %15, double* %2
%16 = load double, double* @M_PI
%17 = fmul double %15, %16
%18 = fdiv double %17, 1.800000e+02
%19 = tail call double @sin(double %18)
%20 = fdiv double %1, %19
br label %95
21: ; preds = %6
%22 = fcmp olt double %0, 0.000000e+00
%23 = and i1 %22, %8
br i1 %23, label %24, label %40
24: ; preds = %21
%25 = fdiv double %0, %1
%26 = tail call double @atan(double %25)
%27 = fmul double %26, 1.800000e+02
%28 = load double, double* @M_PI
%29 = fdiv double %27, %28
%30 = tail call i32 @fabs(double %29)
%31 = add nsw i32 %30, 90
%32 = sitofp i32 %31 to double
store double %32, double* %2
%33 = load double, double* @M_PI
%34 = fmul double %33, %32
%35 = fdiv double %34, 1.800000e+02
%36 = tail call double @sin(double %35)
%37 = fdiv double %0, %36
%38 = tail call i32 @fabs(double %37)
%39 = sitofp i32 %38 to double
br label %95
40: ; preds = %21
%41 = fcmp olt double %1, 0.000000e+00
%42 = and i1 %22, %41
br i1 %42, label %43, label %59
43: ; preds = %40
%44 = fdiv double %1, %0
%45 = tail call double @atan(double %44)
%46 = fmul double %45, 1.800000e+02
%47 = load double, double* @M_PI
%48 = fdiv double %46, %47
%49 = tail call i32 @fabs(double %48)
%50 = add nsw i32 %49, 180
%51 = sitofp i32 %50 to double
store double %51, double* %2
%52 = load double, double* @M_PI
%53 = fmul double %52, %51
%54 = fdiv double %53, 1.800000e+02
%55 = tail call double @sin(double %54)
%56 = fdiv double %1, %55
%57 = tail call i32 @fabs(double %56)
%58 = sitofp i32 %57 to double
br label %95
59: ; preds = %40
%60 = and i1 %7, %41
br i1 %60, label %61, label %77
61: ; preds = %59
%62 = fdiv double %0, %1
%63 = tail call double @atan(double %62)
%64 = fmul double %63, 1.800000e+02
%65 = load double, double* @M_PI
%66 = fdiv double %64, %65
%67 = tail call i32 @fabs(double %66)
%68 = add nsw i32 %67, 270
%69 = sitofp i32 %68 to double
store double %69, double* %2
%70 = load double, double* @M_PI
%71 = fmul double %70, %69
%72 = fdiv double %71, 1.800000e+02
%73 = tail call double @sin(double %72)
%74 = fdiv double %0, %73
%75 = tail call i32 @fabs(double %74)
%76 = sitofp i32 %75 to double
br label %95
77: ; preds = %59
%78 = fcmp oeq double %0, 0.000000e+00
%79 = and i1 %78, %8
br i1 %79, label %80, label %81
80: ; preds = %77
store double 9.000000e+01, double* %2
br label %95
81: ; preds = %77
%82 = and i1 %78, %41
br i1 %82, label %83, label %86
83: ; preds = %81
store double 2.700000e+02, double* %2
%84 = tail call i32 @fabs(double %1)
%85 = sitofp i32 %84 to double
br label %95
86: ; preds = %81
%87 = fcmp oeq double %1, 0.000000e+00
%88 = and i1 %7, %87
br i1 %88, label %89, label %90
89: ; preds = %86
store double 3.600000e+02, double* %2
br label %95
90: ; preds = %86
%91 = and i1 %22, %87
br i1 %91, label %92, label %99
92: ; preds = %90
store double 1.800000e+02, double* %2
%93 = tail call i32 @fabs(double %0)
%94 = sitofp i32 %93 to double
br label %95
95: ; preds = %10, %43, %80, %89, %92, %83, %61, %24
%96 = phi double [ %39, %24 ], [ %76, %61 ], [ %85, %83 ], [ %94, %92 ], [ %0, %89 ], [ %1, %80 ], [ %58, %43 ], [ %20, %10 ]
store double %96, double* %3
%97 = load double, double* %2
%98 = fadd double %97, %4
store double %98, double* %5
br label %99
99: ; preds = %95, %90
%100 = tail call i32 @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str, i64 0, i64 0), double %0, double %1, double %4)
%101 = load double, double* %2
%102 = load double, double* %3
%103 = load double, double* %5
%104 = tail call i32 @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.1, i64 0, i64 0), double %101, double %102, double %103)
ret void
}