#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 */
int fabs(double);
int /*<<< orphan*/ printf(char *, double, int);
void newton_1d() {
  double f, fd, x, hc, xc, xp, fp;
  int it;
  x = 7;
  it = 0;
  f = x * x * x - 7 * x * x + 11 * x - 5;
  fp = f;
  while (fabs(f) >= 1e-06 && it < 100) {
    f = x * x * x - 7 * x * x + 11 * x - 5;
    while (fabs(f) > fabs(fp)) {
      x = (x + xp) / 2;
      fp = f;
      xp = x;
      f = x * x * x - 7 * x * x + 11 * x - 5;
    }
    fd = 3 * x * x - 14 * x + 11;
    it++;
    fp = f;
    xp = x;
    x = x - f / fd;
  }
  printf("Method 1 : Value obtained %lf after %d Iterations \n", x, it);
  x = 7;
  it = 0;
  f = x * x * x - 7 * x * x + 11 * x - 5;
  fp = f;
  while (fabs(f) >= 1e-06 && it < 100) {
    f = x * x * x - 7 * x * x + 11 * x - 5;
    while (fabs(f) > fabs(fp)) {
      x = (x + xp) / 2;
      fp = f;
      xp = x;
      f = x * x * x - 7 * x * x + 11 * x - 5;
    }
    hc = 1e-15 * x;
    xc = x + hc;
    fd = (xc * xc * xc - 7 * xc * xc + 11 * xc - 5 - f) / hc;
    it++;
    fp = f;
    xp = x;
    x = x - f / fd;
  }
  printf("Method 2 : Value obtained %lf after %d Iterations \n", x, it);
  x = 7;
  it = 0;
  f = x * x * x - 7 * x * x + 11 * x - 5;
  fp = f;
  while (fabs(f) >= 1e-06 && it < 100) {
    f = x * x * x - 7 * x * x + 11 * x - 5;
    while (fabs(f) > fabs(fp)) {
      x = (x + xp) / 2;
      fp = f;
      xp = x;
      f = x * x * x - 7 * x * x + 11 * x - 5;
    }
    if (it == 0) {
      hc = 1e-15 * x;
      xc = x + hc;
      fd = (xc * xc * xc - 7 * xc * xc + 11 * xc - 5 - f) / hc;
    } else {
      fd = (f - fp) / (x - xp);
    }
    it++;
    xp = x;
    fp = f;
    x = x - f / fd;
  }
  printf("Method 3 : Value obtained %lf after %d Iterations \n", x, it);
}


x86 assembly (clang, -O0):
<newton_1d>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
movsd  0xee0(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movl   $0x0,-0x3c(%rbp)
movsd  -0x18(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
movsd  0xebd(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  0xe7f(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xe67(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x8(%rbp),%xmm0
call   1040 <fabs@plt>
cvtsi2sd %eax,%xmm0
xor    %eax,%eax
movsd  0xe54(%rip),%xmm1
ucomisd %xmm1,%xmm0
mov    %al,-0x3d(%rbp)
jb     11db <newton_1d+0xbb>
cmpl   $0x64,-0x3c(%rbp)
setl   %al
mov    %al,-0x3d(%rbp)
mov    -0x3d(%rbp),%al
test   $0x1,%al
jne    11eb <newton_1d+0xcb>
jmp    1398 <newton_1d+0x278>
movsd  -0x18(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
movsd  0xe0e(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  0xdd0(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xdb8(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
movsd  -0x8(%rbp),%xmm0
call   1040 <fabs@plt>
mov    %eax,-0x44(%rbp)
movsd  -0x38(%rbp),%xmm0
call   1040 <fabs@plt>
mov    %eax,%ecx
mov    -0x44(%rbp),%eax
cmp    %ecx,%eax
jle    130f <newton_1d+0x1ef>
movsd  -0x18(%rbp),%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  0xda1(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x18(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
movsd  0xd55(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  0xd17(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xcff(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    1251 <newton_1d+0x131>
movsd  0xd21(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm2
movsd  0xd07(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xcb3(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  -0x8(%rbp),%xmm1
divsd  -0x10(%rbp),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x18(%rbp)
jmp    11ac <newton_1d+0x8c>
movsd  -0x18(%rbp),%xmm0
mov    -0x3c(%rbp),%esi
lea    0xc99(%rip),%rdi
call   1030 <printf@plt>
movsd  0xc5c(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movl   $0x0,-0x3c(%rbp)
movsd  -0x18(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
movsd  0xc39(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  0xbfb(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xbe3(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x8(%rbp),%xmm0
call   1040 <fabs@plt>
cvtsi2sd %eax,%xmm0
xor    %eax,%eax
movsd  0xbd0(%rip),%xmm1
ucomisd %xmm1,%xmm0
mov    %al,-0x45(%rbp)
jb     145f <newton_1d+0x33f>
cmpl   $0x64,-0x3c(%rbp)
setl   %al
mov    %al,-0x45(%rbp)
mov    -0x45(%rbp),%al
test   $0x1,%al
jne    146f <newton_1d+0x34f>
jmp    165e <newton_1d+0x53e>
movsd  -0x18(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
movsd  0xb8a(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  0xb4c(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xb34(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
movsd  -0x8(%rbp),%xmm0
call   1040 <fabs@plt>
mov    %eax,-0x4c(%rbp)
movsd  -0x38(%rbp),%xmm0
call   1040 <fabs@plt>
mov    %eax,%ecx
mov    -0x4c(%rbp),%eax
cmp    %ecx,%eax
jle    1593 <newton_1d+0x473>
movsd  -0x18(%rbp),%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  0xb1d(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x18(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
movsd  0xad1(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  0xa93(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xa7b(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    14d5 <newton_1d+0x3b5>
movsd  0xa85(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  -0x18(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm1
mulsd  -0x28(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm2
movsd  0xa45(%rip),%xmm0
mulsd  -0x28(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0xa07(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x9ef(%rip),%xmm1
subsd  %xmm1,%xmm0
subsd  -0x8(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  -0x8(%rbp),%xmm1
divsd  -0x10(%rbp),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x18(%rbp)
jmp    1430 <newton_1d+0x310>
movsd  -0x18(%rbp),%xmm0
mov    -0x3c(%rbp),%esi
lea    0xa07(%rip),%rdi
call   1030 <printf@plt>
movsd  0x996(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movl   $0x0,-0x3c(%rbp)
movsd  -0x18(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
movsd  0x973(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  0x935(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x91d(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x8(%rbp),%xmm0
call   1040 <fabs@plt>
cvtsi2sd %eax,%xmm0
xor    %eax,%eax
movsd  0x90a(%rip),%xmm1
ucomisd %xmm1,%xmm0
mov    %al,-0x4d(%rbp)
jb     1725 <newton_1d+0x605>
cmpl   $0x64,-0x3c(%rbp)
setl   %al
mov    %al,-0x4d(%rbp)
mov    -0x4d(%rbp),%al
test   $0x1,%al
jne    1735 <newton_1d+0x615>
jmp    1950 <newton_1d+0x830>
movsd  -0x18(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
movsd  0x8c4(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  0x886(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x86e(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
movsd  -0x8(%rbp),%xmm0
call   1040 <fabs@plt>
mov    %eax,-0x54(%rbp)
movsd  -0x38(%rbp),%xmm0
call   1040 <fabs@plt>
mov    %eax,%ecx
mov    -0x54(%rbp),%eax
cmp    %ecx,%eax
jle    1859 <newton_1d+0x739>
movsd  -0x18(%rbp),%xmm0
addsd  -0x30(%rbp),%xmm0
movsd  0x857(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x18(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm2
movsd  0x80b(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x18(%rbp),%xmm0
movsd  0x7cd(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x7b5(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    179b <newton_1d+0x67b>
cmpl   $0x0,-0x3c(%rbp)
jne    18f9 <newton_1d+0x7d9>
movsd  0x7b5(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  -0x18(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm1
mulsd  -0x28(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm2
movsd  0x775(%rip),%xmm0
mulsd  -0x28(%rbp),%xmm0
mulsd  -0x28(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0x737(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x71f(%rip),%xmm1
subsd  %xmm1,%xmm0
subsd  -0x8(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1916 <newton_1d+0x7f6>
movsd  -0x8(%rbp),%xmm0
subsd  -0x38(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm1
subsd  -0x30(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  -0x8(%rbp),%xmm1
divsd  -0x10(%rbp),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x18(%rbp)
jmp    16f6 <newton_1d+0x5d6>
movsd  -0x18(%rbp),%xmm0
mov    -0x3c(%rbp),%esi
lea    0x749(%rip),%rdi
call   1030 <printf@plt>
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<newton_1d>:
push   %rbp
push   %r14
push   %rbx
sub    $0x20,%rsp
movsd  0xed0(%rip),%xmm0
movsd  %xmm0,0x8(%rsp)
call   1040 <fabs@plt>
xor    %r14d,%r14d
movsd  0xec2(%rip),%xmm5
test   %eax,%eax
jle    12ec <newton_1d+0x1cc>
movsd  0xeb2(%rip),%xmm5
xor    %ebx,%ebx
movsd  0xeb0(%rip),%xmm2
movsd  0xeb0(%rip),%xmm3
movsd  0xeb0(%rip),%xmm4
movsd  %xmm5,0x10(%rsp)
movapd %xmm5,%xmm6
mulsd  %xmm5,%xmm6
movapd %xmm5,%xmm1
mulsd  %xmm2,%xmm1
mulsd  %xmm5,%xmm1
mulsd  %xmm5,%xmm6
addsd  %xmm1,%xmm6
mulsd  %xmm3,%xmm5
addsd  %xmm6,%xmm5
addsd  %xmm4,%xmm5
movsd  %xmm5,(%rsp)
movapd %xmm5,%xmm0
call   1040 <fabs@plt>
mov    %eax,%ebp
movsd  0x8(%rsp),%xmm0
call   1040 <fabs@plt>
cmp    %eax,%ebp
jle    1260 <newton_1d+0x140>
movsd  0x18(%rsp),%xmm2
movsd  0xe49(%rip),%xmm3
movsd  0x10(%rsp),%xmm1
cs nopw 0x0(%rax,%rax,1)
nop
addsd  %xmm1,%xmm2
mulsd  0xe3c(%rip),%xmm2
movsd  %xmm2,0x18(%rsp)
movapd %xmm2,%xmm0
mulsd  %xmm2,%xmm0
movapd %xmm2,%xmm1
mulsd  0xe0a(%rip),%xmm1
mulsd  %xmm2,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mulsd  %xmm3,%xmm2
addsd  %xmm0,%xmm2
addsd  0xdfe(%rip),%xmm2
movsd  %xmm2,0x8(%rsp)
movapd %xmm2,%xmm0
call   1040 <fabs@plt>
mov    %eax,%ebp
movsd  (%rsp),%xmm0
call   1040 <fabs@plt>
movsd  0x8(%rsp),%xmm0
movsd  0xdcd(%rip),%xmm3
movsd  0x18(%rsp),%xmm2
movsd  %xmm0,(%rsp)
movapd %xmm2,%xmm1
cmp    %eax,%ebp
jg     11e0 <newton_1d+0xc0>
jmp    1273 <newton_1d+0x153>
movsd  0x10(%rsp),%xmm2
movsd  (%rsp),%xmm0
movsd  0xda5(%rip),%xmm3
movapd %xmm2,%xmm4
mulsd  0xdb1(%rip),%xmm4
movapd %xmm2,%xmm1
mulsd  0xdad(%rip),%xmm1
mulsd  %xmm2,%xmm4
addsd  %xmm1,%xmm4
addsd  %xmm3,%xmm4
lea    0x1(%rbx),%ebp
movapd %xmm0,%xmm1
divsd  %xmm4,%xmm1
movsd  %xmm2,0x18(%rsp)
subsd  %xmm1,%xmm2
movsd  %xmm2,0x10(%rsp)
movsd  %xmm0,0x8(%rsp)
call   1040 <fabs@plt>
test   %eax,%eax
jle    12f0 <newton_1d+0x1d0>
cmp    $0x63,%ebx
mov    %ebp,%ebx
movsd  0xd42(%rip),%xmm2
movsd  0xd42(%rip),%xmm3
movsd  0xd42(%rip),%xmm4
movsd  0x10(%rsp),%xmm5
jb     1170 <newton_1d+0x50>
jmp    12f6 <newton_1d+0x1d6>
xor    %ebp,%ebp
jmp    12f6 <newton_1d+0x1d6>
movsd  0x10(%rsp),%xmm5
lea    0xd4b(%rip),%rdi
movapd %xmm5,%xmm0
mov    %ebp,%esi
call   1030 <printf@plt>
movsd  0xcf0(%rip),%xmm0
movsd  %xmm0,0x8(%rsp)
call   1040 <fabs@plt>
movsd  0xce5(%rip),%xmm0
test   %eax,%eax
jle    1528 <newton_1d+0x408>
xor    %ebp,%ebp
movsd  0xcdb(%rip),%xmm2
movsd  0xcdb(%rip),%xmm3
movsd  0xcdb(%rip),%xmm4
cs nopw 0x0(%rax,%rax,1)
nop
movsd  %xmm0,0x10(%rsp)
movapd %xmm0,%xmm6
mulsd  %xmm0,%xmm6
movapd %xmm0,%xmm1
mulsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm6
addsd  %xmm1,%xmm6
mulsd  %xmm3,%xmm0
addsd  %xmm6,%xmm0
addsd  %xmm4,%xmm0
movsd  %xmm0,(%rsp)
call   1040 <fabs@plt>
mov    %eax,%ebx
movsd  0x8(%rsp),%xmm0
call   1040 <fabs@plt>
cmp    %eax,%ebx
jle    1460 <newton_1d+0x340>
movsd  0x18(%rsp),%xmm4
movsd  0xc65(%rip),%xmm5
movsd  0xc65(%rip),%xmm6
movsd  0xc65(%rip),%xmm7
movsd  0x10(%rsp),%xmm1
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
addsd  %xmm1,%xmm4
mulsd  0xc4c(%rip),%xmm4
movsd  %xmm4,0x18(%rsp)
movapd %xmm4,%xmm0
mulsd  %xmm4,%xmm0
movapd %xmm4,%xmm1
mulsd  %xmm5,%xmm1
mulsd  %xmm4,%xmm1
mulsd  %xmm4,%xmm0
addsd  %xmm1,%xmm0
mulsd  %xmm6,%xmm4
addsd  %xmm0,%xmm4
addsd  %xmm7,%xmm4
movsd  %xmm4,0x8(%rsp)
movapd %xmm4,%xmm0
call   1040 <fabs@plt>
mov    %eax,%ebx
movsd  (%rsp),%xmm0
call   1040 <fabs@plt>
movsd  0x8(%rsp),%xmm0
movsd  0xbed(%rip),%xmm7
movsd  0xbdd(%rip),%xmm6
movsd  0xbcd(%rip),%xmm5
movsd  0x18(%rsp),%xmm4
movsd  %xmm0,(%rsp)
movapd %xmm4,%xmm1
cmp    %eax,%ebx
jg     13d0 <newton_1d+0x2b0>
jmp    1483 <newton_1d+0x363>
nopl   0x0(%rax)
movsd  0x10(%rsp),%xmm4
movsd  (%rsp),%xmm0
movsd  0xb9d(%rip),%xmm5
movsd  0xb9d(%rip),%xmm6
movsd  0xb9d(%rip),%xmm7
movapd %xmm4,%xmm8
mulsd  0xbaf(%rip),%xmm8
movapd %xmm4,%xmm1
addsd  %xmm8,%xmm1
movapd %xmm1,%xmm2
mulsd  %xmm1,%xmm2
movapd %xmm1,%xmm3
mulsd  %xmm5,%xmm3
mulsd  %xmm1,%xmm3
mulsd  %xmm1,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm6,%xmm1
addsd  %xmm2,%xmm1
addsd  %xmm7,%xmm1
subsd  %xmm0,%xmm1
divsd  %xmm8,%xmm1
lea    0x1(%rbp),%r14d
movapd %xmm0,%xmm2
divsd  %xmm1,%xmm2
movsd  %xmm4,0x18(%rsp)
subsd  %xmm2,%xmm4
movsd  %xmm4,0x10(%rsp)
movsd  %xmm0,0x8(%rsp)
call   1040 <fabs@plt>
test   %eax,%eax
jle    1522 <newton_1d+0x402>
cmp    $0x63,%ebp
mov    %r14d,%ebp
movsd  0xb0c(%rip),%xmm2
movsd  0xb0c(%rip),%xmm3
movsd  0xb0c(%rip),%xmm4
movsd  0x10(%rsp),%xmm0
jb     1350 <newton_1d+0x230>
jmp    1528 <newton_1d+0x408>
movsd  0x10(%rsp),%xmm0
lea    0xb4d(%rip),%rdi
mov    %r14d,%esi
call   1030 <printf@plt>
movsd  0xac1(%rip),%xmm0
movsd  %xmm0,0x8(%rsp)
call   1040 <fabs@plt>
test   %eax,%eax
jle    1747 <newton_1d+0x627>
movsd  0xaae(%rip),%xmm0
xor    %ebp,%ebp
movsd  0xaac(%rip),%xmm3
movsd  0xaac(%rip),%xmm4
movsd  0xaac(%rip),%xmm5
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movsd  %xmm0,(%rsp)
movapd %xmm0,%xmm6
mulsd  %xmm0,%xmm6
movapd %xmm0,%xmm1
mulsd  %xmm3,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm6
addsd  %xmm1,%xmm6
mulsd  %xmm4,%xmm0
addsd  %xmm6,%xmm0
addsd  %xmm5,%xmm0
movsd  %xmm0,0x10(%rsp)
call   1040 <fabs@plt>
mov    %eax,%ebx
movsd  0x8(%rsp),%xmm0
call   1040 <fabs@plt>
cmp    %eax,%ebx
jle    1660 <newton_1d+0x540>
movsd  0x10(%rsp),%xmm0
movsd  0x18(%rsp),%xmm5
movsd  (%rsp),%xmm3
xchg   %ax,%ax
movsd  %xmm0,(%rsp)
addsd  %xmm3,%xmm5
mulsd  0xa37(%rip),%xmm5
movsd  %xmm5,0x18(%rsp)
movapd %xmm5,%xmm0
mulsd  %xmm5,%xmm0
movapd %xmm5,%xmm1
mulsd  0xa05(%rip),%xmm1
mulsd  %xmm5,%xmm1
mulsd  %xmm5,%xmm0
addsd  %xmm1,%xmm0
mulsd  0x9f9(%rip),%xmm5
addsd  %xmm0,%xmm5
addsd  0x9f5(%rip),%xmm5
movsd  %xmm5,0x8(%rsp)
movapd %xmm5,%xmm0
call   1040 <fabs@plt>
mov    %eax,%ebx
movsd  (%rsp),%xmm0
call   1040 <fabs@plt>
movsd  0x18(%rsp),%xmm5
movsd  0x8(%rsp),%xmm0
movapd %xmm5,%xmm3
movapd %xmm5,%xmm2
cmp    %eax,%ebx
jg     15e0 <newton_1d+0x4c0>
jmp    167c <newton_1d+0x55c>
movsd  (%rsp),%xmm5
movsd  0x8(%rsp),%xmm0
movsd  %xmm0,(%rsp)
movsd  0x10(%rsp),%xmm0
movsd  0x18(%rsp),%xmm2
movsd  (%rsp),%xmm1
test   %ebp,%ebp
je     16a0 <newton_1d+0x580>
movapd %xmm0,%xmm4
subsd  %xmm1,%xmm4
movapd %xmm5,%xmm1
subsd  %xmm2,%xmm1
jmp    16ec <newton_1d+0x5cc>
nopw   0x0(%rax,%rax,1)
movapd %xmm5,%xmm1
mulsd  0x994(%rip),%xmm1
movapd %xmm5,%xmm4
addsd  %xmm1,%xmm4
movapd %xmm4,%xmm2
mulsd  %xmm4,%xmm2
movapd %xmm4,%xmm3
mulsd  0x948(%rip),%xmm3
mulsd  %xmm4,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  0x93c(%rip),%xmm4
addsd  %xmm2,%xmm4
addsd  0x938(%rip),%xmm4
subsd  %xmm0,%xmm4
divsd  %xmm1,%xmm4
lea    0x1(%rbp),%ebx
movapd %xmm0,%xmm1
divsd  %xmm4,%xmm1
movapd %xmm5,%xmm2
subsd  %xmm1,%xmm2
movsd  %xmm2,(%rsp)
movsd  %xmm0,0x8(%rsp)
movsd  %xmm5,0x18(%rsp)
call   1040 <fabs@plt>
test   %eax,%eax
jle    1753 <newton_1d+0x633>
cmp    $0x63,%ebp
mov    %ebx,%ebp
movsd  (%rsp),%xmm0
movsd  0x8e1(%rip),%xmm3
movsd  0x8e1(%rip),%xmm4
movsd  0x8e1(%rip),%xmm5
jb     1580 <newton_1d+0x460>
jmp    1758 <newton_1d+0x638>
xor    %ebx,%ebx
movsd  0x8b7(%rip),%xmm0
jmp    1758 <newton_1d+0x638>
movsd  (%rsp),%xmm0
lea    0x951(%rip),%rdi
mov    %ebx,%esi
add    $0x20,%rsp
pop    %rbx
pop    %r14
pop    %rbp
jmp    1030 <printf@plt>

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

LLVM IR (-O2):
@.str = [52 x i8] c"Method 1 : Value obtained %lf after %d Iterations \0A\00"
@.str.1 = [52 x i8] c"Method 2 : Value obtained %lf after %d Iterations \0A\00"
@.str.2 = [52 x i8] c"Method 3 : Value obtained %lf after %d Iterations \0A\00"
define void @newton_1d() {
%1 = tail call i32 @fabs(double 7.200000e+01)
%2 = icmp sgt i32 %1, 0
br i1 %2, label %3, label %46
3: ; preds = %0, %32
%4 = phi i32 [ %39, %32 ], [ 0, %0 ]
%5 = phi double [ %34, %32 ], [ 7.200000e+01, %0 ]
%6 = phi double [ %33, %32 ], [ undef, %0 ]
%7 = phi double [ %41, %32 ], [ 7.000000e+00, %0 ]
%8 = fmul double %7, %7
%9 = fmul double %7, -7.000000e+00
%10 = fmul double %7, %9
%11 = tail call double @llvm.fmuladd.f64(double %8, double %7, double %10)
%12 = tail call double @llvm.fmuladd.f64(double %7, double 1.100000e+01, double %11)
%13 = fadd double %12, -5.000000e+00
%14 = tail call i32 @fabs(double %13)
%15 = tail call i32 @fabs(double %5)
%16 = icmp sgt i32 %14, %15
br i1 %16, label %17, label %32
17: ; preds = %3, %17
%18 = phi double [ %28, %17 ], [ %13, %3 ]
%19 = phi double [ %22, %17 ], [ %6, %3 ]
%20 = phi double [ %22, %17 ], [ %7, %3 ]
%21 = fadd double %20, %19
%22 = fmul double %21, 5.000000e-01
%23 = fmul double %22, %22
%24 = fmul double %22, -7.000000e+00
%25 = fmul double %22, %24
%26 = tail call double @llvm.fmuladd.f64(double %23, double %22, double %25)
%27 = tail call double @llvm.fmuladd.f64(double %22, double 1.100000e+01, double %26)
%28 = fadd double %27, -5.000000e+00
%29 = tail call i32 @fabs(double %28)
%30 = tail call i32 @fabs(double %18)
%31 = icmp sgt i32 %29, %30
br i1 %31, label %17, label %32
32: ; preds = %17, %3
%33 = phi double [ %7, %3 ], [ %22, %17 ]
%34 = phi double [ %13, %3 ], [ %28, %17 ]
%35 = fmul double %33, 3.000000e+00
%36 = fmul double %33, -1.400000e+01
%37 = tail call double @llvm.fmuladd.f64(double %35, double %33, double %36)
%38 = fadd double %37, 1.100000e+01
%39 = add nuw nsw i32 %4, 1
%40 = fdiv double %34, %38
%41 = fsub double %33, %40
%42 = tail call i32 @fabs(double %34)
%43 = icmp sgt i32 %42, 0
%44 = icmp ult i32 %4, 99
%45 = select i1 %43, i1 %44, i1 false
br i1 %45, label %3, label %46
46: ; preds = %32, %0
%47 = phi double [ 7.000000e+00, %0 ], [ %41, %32 ]
%48 = phi double [ undef, %0 ], [ %33, %32 ]
%49 = phi i32 [ 0, %0 ], [ %39, %32 ]
%50 = tail call i32 @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str, i64 0, i64 0), double %47, i32 %49)
%51 = tail call i32 @fabs(double 7.200000e+01)
%52 = icmp sgt i32 %51, 0
br i1 %52, label %53, label %102
53: ; preds = %46, %82
%54 = phi i32 [ %95, %82 ], [ 0, %46 ]
%55 = phi double [ %84, %82 ], [ 7.200000e+01, %46 ]
%56 = phi double [ %83, %82 ], [ %48, %46 ]
%57 = phi double [ %97, %82 ], [ 7.000000e+00, %46 ]
%58 = fmul double %57, %57
%59 = fmul double %57, -7.000000e+00
%60 = fmul double %57, %59
%61 = tail call double @llvm.fmuladd.f64(double %58, double %57, double %60)
%62 = tail call double @llvm.fmuladd.f64(double %57, double 1.100000e+01, double %61)
%63 = fadd double %62, -5.000000e+00
%64 = tail call i32 @fabs(double %63)
%65 = tail call i32 @fabs(double %55)
%66 = icmp sgt i32 %64, %65
br i1 %66, label %67, label %82
67: ; preds = %53, %67
%68 = phi double [ %78, %67 ], [ %63, %53 ]
%69 = phi double [ %72, %67 ], [ %56, %53 ]
%70 = phi double [ %72, %67 ], [ %57, %53 ]
%71 = fadd double %70, %69
%72 = fmul double %71, 5.000000e-01
%73 = fmul double %72, %72
%74 = fmul double %72, -7.000000e+00
%75 = fmul double %72, %74
%76 = tail call double @llvm.fmuladd.f64(double %73, double %72, double %75)
%77 = tail call double @llvm.fmuladd.f64(double %72, double 1.100000e+01, double %76)
%78 = fadd double %77, -5.000000e+00
%79 = tail call i32 @fabs(double %78)
%80 = tail call i32 @fabs(double %68)
%81 = icmp sgt i32 %79, %80
br i1 %81, label %67, label %82
82: ; preds = %67, %53
%83 = phi double [ %57, %53 ], [ %72, %67 ]
%84 = phi double [ %63, %53 ], [ %78, %67 ]
%85 = fmul double %83, 1.000000e-15
%86 = fadd double %83, %85
%87 = fmul double %86, %86
%88 = fmul double %86, -7.000000e+00
%89 = fmul double %86, %88
%90 = tail call double @llvm.fmuladd.f64(double %87, double %86, double %89)
%91 = tail call double @llvm.fmuladd.f64(double %86, double 1.100000e+01, double %90)
%92 = fadd double %91, -5.000000e+00
%93 = fsub double %92, %84
%94 = fdiv double %93, %85
%95 = add nuw nsw i32 %54, 1
%96 = fdiv double %84, %94
%97 = fsub double %83, %96
%98 = tail call i32 @fabs(double %84)
%99 = icmp sgt i32 %98, 0
%100 = icmp ult i32 %54, 99
%101 = select i1 %99, i1 %100, i1 false
br i1 %101, label %53, label %102
102: ; preds = %82, %46
%103 = phi double [ 7.000000e+00, %46 ], [ %97, %82 ]
%104 = phi double [ %48, %46 ], [ %83, %82 ]
%105 = phi i32 [ 0, %46 ], [ %95, %82 ]
%106 = tail call i32 @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.1, i64 0, i64 0), double %103, i32 %105)
%107 = tail call i32 @fabs(double 7.200000e+01)
%108 = icmp sgt i32 %107, 0
br i1 %108, label %109, label %168
109: ; preds = %102, %159
%110 = phi i32 [ %161, %159 ], [ 0, %102 ]
%111 = phi double [ %142, %159 ], [ 7.200000e+01, %102 ]
%112 = phi double [ %139, %159 ], [ %104, %102 ]
%113 = phi double [ %163, %159 ], [ 7.000000e+00, %102 ]
%114 = fmul double %113, %113
%115 = fmul double %113, -7.000000e+00
%116 = fmul double %113, %115
%117 = tail call double @llvm.fmuladd.f64(double %114, double %113, double %116)
%118 = tail call double @llvm.fmuladd.f64(double %113, double 1.100000e+01, double %117)
%119 = fadd double %118, -5.000000e+00
%120 = tail call i32 @fabs(double %119)
%121 = tail call i32 @fabs(double %111)
%122 = icmp sgt i32 %120, %121
br i1 %122, label %123, label %138
123: ; preds = %109, %123
%124 = phi double [ %134, %123 ], [ %119, %109 ]
%125 = phi double [ %128, %123 ], [ %112, %109 ]
%126 = phi double [ %128, %123 ], [ %113, %109 ]
%127 = fadd double %126, %125
%128 = fmul double %127, 5.000000e-01
%129 = fmul double %128, %128
%130 = fmul double %128, -7.000000e+00
%131 = fmul double %128, %130
%132 = tail call double @llvm.fmuladd.f64(double %129, double %128, double %131)
%133 = tail call double @llvm.fmuladd.f64(double %128, double 1.100000e+01, double %132)
%134 = fadd double %133, -5.000000e+00
%135 = tail call i32 @fabs(double %134)
%136 = tail call i32 @fabs(double %124)
%137 = icmp sgt i32 %135, %136
br i1 %137, label %123, label %138
138: ; preds = %123, %109
%139 = phi double [ %113, %109 ], [ %128, %123 ]
%140 = phi double [ %112, %109 ], [ %128, %123 ]
%141 = phi double [ %111, %109 ], [ %124, %123 ]
%142 = phi double [ %119, %109 ], [ %134, %123 ]
%143 = icmp eq i32 %110, 0
br i1 %143, label %144, label %155
144: ; preds = %138
%145 = fmul double %139, 1.000000e-15
%146 = fadd double %139, %145
%147 = fmul double %146, %146
%148 = fmul double %146, -7.000000e+00
%149 = fmul double %146, %148
%150 = tail call double @llvm.fmuladd.f64(double %147, double %146, double %149)
%151 = tail call double @llvm.fmuladd.f64(double %146, double 1.100000e+01, double %150)
%152 = fadd double %151, -5.000000e+00
%153 = fsub double %152, %142
%154 = fdiv double %153, %145
br label %159
155: ; preds = %138
%156 = fsub double %142, %141
%157 = fsub double %139, %140
%158 = fdiv double %156, %157
br label %159
159: ; preds = %155, %144
%160 = phi double [ %154, %144 ], [ %158, %155 ]
%161 = add nuw nsw i32 %110, 1
%162 = fdiv double %142, %160
%163 = fsub double %139, %162
%164 = tail call i32 @fabs(double %142)
%165 = icmp sgt i32 %164, 0
%166 = icmp ult i32 %110, 99
%167 = select i1 %165, i1 %166, i1 false
br i1 %167, label %109, label %168
168: ; preds = %159, %102
%169 = phi double [ 7.000000e+00, %102 ], [ %163, %159 ]
%170 = phi i32 [ 0, %102 ], [ %161, %159 ]
%171 = tail call i32 @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.2, i64 0, i64 0), double %169, i32 %170)
ret void
}