#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 */
struct timespec {
  int dummy;
};

/* Variables and functions */
int /*<<< orphan*/ CLOCK_MONOTONIC;
double atan(double);
int /*<<< orphan*/ clock_gettime(int /*<<< orphan*/, struct timespec *);
int /*<<< orphan*/ elapsed_time_hr(struct timespec, struct timespec, char *);
double fabs(double);
int /*<<< orphan*/ printf(char *, unsigned long, ...);
int t4_f4(unsigned long reps) {
  unsigned long i;
  unsigned long is_true = 0, is_false = 0, count = 0;
  double pi, exactpi;
  unsigned long N = reps;
  struct timespec start, end;
#pragma omp parallel private(i, pi)
  for (i = 0; i < 100; i = i + 10) {
    pi = pi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N) *
                               (((double)i) - 0.5) / ((double)N));
    pi = pi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 1) *
                               (((double)i) - 0.5) / ((double)N + 1));
    pi = pi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 2) *
                               (((double)i) - 0.5) / ((double)N + 2));
    pi = pi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 3) *
                               (((double)i) - 0.5) / ((double)N + 3));
    pi = pi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 4) *
                               (((double)i) - 0.5) / ((double)N + 4));
    pi = pi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 5) *
                               (((double)i) - 0.5) / ((double)N + 5));
    pi = pi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 6) *
                               (((double)i) - 0.5) / ((double)N + 6));
    pi = pi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 7) *
                               (((double)i) - 0.5) / ((double)N + 7));
    pi = pi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 8) *
                               (((double)i) - 0.5) / ((double)N + 8));
    pi = pi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 9) *
                               (((double)i) - 0.5) / ((double)N + 9));
  }
  pi = 0.0;
  clock_gettime(CLOCK_MONOTONIC, &start);
#pragma omp parallel private(i)
  {
    double lpi = 0.0;
    int lcount = 0;
    for (i = 0; i < N; i = i + 10) {
      lcount++;
      lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N) *
                                   (((double)i) - 0.5) / ((double)N));
      lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 1) *
                                   (((double)i) - 0.5) / ((double)N + 1));
      lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 2) *
                                   (((double)i) - 0.5) / ((double)N + 2));
      lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 3) *
                                   (((double)i) - 0.5) / ((double)N + 3));
      lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 4) *
                                   (((double)i) - 0.5) / ((double)N + 4));
      lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 5) *
                                   (((double)i) - 0.5) / ((double)N + 5));
      lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 6) *
                                   (((double)i) - 0.5) / ((double)N + 6));
      lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 7) *
                                   (((double)i) - 0.5) / ((double)N + 7));
      lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 8) *
                                   (((double)i) - 0.5) / ((double)N + 8));
      lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 9) *
                                   (((double)i) - 0.5) / ((double)N + 9));
    }
    pi = lpi;
    count = lcount;
  }
  clock_gettime(CLOCK_MONOTONIC, &end);
  elapsed_time_hr(start, end, "Loop without branches");
  pi = pi * 4.0 / ((double)N);
  exactpi = 4.0 * atan(1.0);
  printf("pi = %f, %% error = %f\n", pi,
         fabs(100.0 * (pi - exactpi) / exactpi));
  pi = 0.0;
  clock_gettime(CLOCK_MONOTONIC, &start);
#pragma omp parallel private(i)
  {
    double lpi = 0.0;
    int l_is_true = 0;
    int l_is_false = 0;
    for (i = 0; i < N; i = i + 10) {
      if ((i & 4) == 0) {
        l_is_true++;
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N) *
                                     (((double)i) - 0.5) / ((double)N));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 1) *
                                     (((double)i) - 0.5) / ((double)N + 1));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 2) *
                                     (((double)i) - 0.5) / ((double)N + 2));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 3) *
                                     (((double)i) - 0.5) / ((double)N + 3));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 4) *
                                     (((double)i) - 0.5) / ((double)N + 4));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 5) *
                                     (((double)i) - 0.5) / ((double)N + 5));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 6) *
                                     (((double)i) - 0.5) / ((double)N + 6));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 7) *
                                     (((double)i) - 0.5) / ((double)N + 7));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 8) *
                                     (((double)i) - 0.5) / ((double)N + 8));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 9) *
                                     (((double)i) - 0.5) / ((double)N + 9));
      } else {
        l_is_false++;
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N) *
                                     (((double)i) - 0.5) / ((double)N));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 1) *
                                     (((double)i) - 0.5) / ((double)N + 1));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 2) *
                                     (((double)i) - 0.5) / ((double)N + 2));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 3) *
                                     (((double)i) - 0.5) / ((double)N + 3));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 4) *
                                     (((double)i) - 0.5) / ((double)N + 4));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 5) *
                                     (((double)i) - 0.5) / ((double)N + 5));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 6) *
                                     (((double)i) - 0.5) / ((double)N + 6));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 7) *
                                     (((double)i) - 0.5) / ((double)N + 7));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 8) *
                                     (((double)i) - 0.5) / ((double)N + 8));
        lpi = lpi + 1.0 / (1.0 + (((double)i) - 0.5) / ((double)N + 9) *
                                     (((double)i) - 0.5) / ((double)N + 9));
      }
    }
    pi = lpi;
    is_true = l_is_true;
    is_false = l_is_false;
  }
  clock_gettime(CLOCK_MONOTONIC, &end);
  elapsed_time_hr(start, end, "4xTRUE 4xFALSE");
  pi = pi * 4.0 / ((double)N);
  exactpi = 4.0 * atan(1.0);
  printf("pi = %f, %% error = %f\n", pi,
         fabs(100.0 * (pi - exactpi) / exactpi));
  printf("count = %ld\n", count);
  printf("is_true = %ld\n", is_true);
  printf("is_false = %ld\n", is_false);
  return 0;
}


x86 assembly (clang, -O0):
<t4_f4>:
push   %rbp
mov    %rsp,%rbp
sub    $0x150,%rsp
mov    %rdi,-0x8(%rbp)
movq   $0x0,-0x18(%rbp)
movq   $0x0,-0x20(%rbp)
movq   $0x0,-0x28(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x40(%rbp)
movq   $0x0,-0x10(%rbp)
cmpq   $0x64,-0x10(%rbp)
jae    15df <t4_f4+0x49f>
movsd  -0x30(%rbp),%xmm0
movq   -0x10(%rbp),%xmm5
movaps 0x1e7d(%rip),%xmm4
movaps %xmm4,-0xa0(%rbp)
punpckldq %xmm4,%xmm5
movapd 0x1e7a(%rip),%xmm1
movaps %xmm1,-0x90(%rbp)
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm2
unpckhpd %xmm5,%xmm5
addsd  %xmm2,%xmm5
movsd  0x1e94(%rip),%xmm2
movsd  %xmm2,-0x80(%rbp)
subsd  %xmm2,%xmm5
movq   -0x40(%rbp),%xmm3
punpckldq %xmm4,%xmm3
subpd  %xmm1,%xmm3
movaps %xmm3,%xmm6
unpckhpd %xmm3,%xmm3
addsd  %xmm6,%xmm3
movaps %xmm5,%xmm6
divsd  %xmm3,%xmm6
mulsd  %xmm5,%xmm6
divsd  %xmm3,%xmm6
movsd  0x1e44(%rip),%xmm3
movsd  %xmm3,-0x78(%rbp)
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
addsd  %xmm3,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x1daa(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x1d4a(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x1cb2(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x1c82(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x1c22(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x1bc2(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm6
punpckldq %xmm4,%xmm6
subpd  %xmm1,%xmm6
movaps %xmm6,%xmm5
unpckhpd %xmm6,%xmm6
addsd  %xmm5,%xmm6
movsd  0x1b62(%rip),%xmm5
addsd  %xmm5,%xmm6
movaps %xmm7,%xmm5
divsd  %xmm6,%xmm5
mulsd  %xmm7,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm3,%xmm5
divsd  %xmm5,%xmm3
addsd  %xmm3,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x30(%rbp),%xmm0
movq   -0x10(%rbp),%xmm3
punpckldq %xmm4,%xmm3
subpd  %xmm1,%xmm3
movaps %xmm3,%xmm5
unpckhpd %xmm3,%xmm3
addsd  %xmm5,%xmm3
subsd  %xmm2,%xmm3
movq   -0x40(%rbp),%xmm2
punpckldq %xmm4,%xmm2
subpd  %xmm1,%xmm2
movaps %xmm2,%xmm1
unpckhpd %xmm2,%xmm2
addsd  %xmm1,%xmm2
movsd  0x1ac5(%rip),%xmm1
movaps %xmm2,%xmm4
addsd  %xmm1,%xmm4
movaps %xmm3,%xmm1
divsd  %xmm4,%xmm1
mulsd  %xmm3,%xmm1
movsd  0x1aab(%rip),%xmm3
addsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
movsd  0x1a8b(%rip),%xmm2
addsd  %xmm1,%xmm2
movsd  0x1a7f(%rip),%xmm1
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
add    $0xa,%rax
mov    %rax,-0x10(%rbp)
jmp    1177 <t4_f4+0x37>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    0x39fa(%rip),%rax
mov    (%rax),%edi
lea    -0x48(%rbp),%rsi
call   1040 <clock_gettime@plt>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x58(%rbp)
movl   $0x0,-0x5c(%rbp)
movq   $0x0,-0x10(%rbp)
mov    -0x10(%rbp),%rax
cmp    -0x40(%rbp),%rax
jae    1a8a <t4_f4+0x94a>
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
movsd  -0x58(%rbp),%xmm0
movq   -0x10(%rbp),%xmm5
movaps 0x19d8(%rip),%xmm4
movaps %xmm4,-0xd0(%rbp)
punpckldq %xmm4,%xmm5
movapd 0x19d5(%rip),%xmm1
movaps %xmm1,-0xc0(%rbp)
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm2
unpckhpd %xmm5,%xmm5
addsd  %xmm2,%xmm5
movsd  0x19ef(%rip),%xmm2
movsd  %xmm2,-0xb0(%rbp)
ff
subsd  %xmm2,%xmm5
movq   -0x40(%rbp),%xmm3
punpckldq %xmm4,%xmm3
subpd  %xmm1,%xmm3
movaps %xmm3,%xmm6
unpckhpd %xmm3,%xmm3
addsd  %xmm6,%xmm3
movaps %xmm5,%xmm6
divsd  %xmm3,%xmm6
mulsd  %xmm5,%xmm6
divsd  %xmm3,%xmm6
movsd  0x199c(%rip),%xmm3
movsd  %xmm3,-0xa8(%rbp)
ff
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x58(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
addsd  %xmm3,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x58(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x18ff(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x58(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x189f(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x58(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x1807(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x58(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x17d7(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x58(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x1777(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x58(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x1717(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x58(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm6
punpckldq %xmm4,%xmm6
subpd  %xmm1,%xmm6
movaps %xmm6,%xmm5
unpckhpd %xmm6,%xmm6
addsd  %xmm5,%xmm6
movsd  0x16b7(%rip),%xmm5
addsd  %xmm5,%xmm6
movaps %xmm7,%xmm5
divsd  %xmm6,%xmm5
mulsd  %xmm7,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm3,%xmm5
divsd  %xmm5,%xmm3
addsd  %xmm3,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x58(%rbp),%xmm0
movq   -0x10(%rbp),%xmm3
punpckldq %xmm4,%xmm3
subpd  %xmm1,%xmm3
movaps %xmm3,%xmm5
unpckhpd %xmm3,%xmm3
addsd  %xmm5,%xmm3
subsd  %xmm2,%xmm3
movq   -0x40(%rbp),%xmm2
punpckldq %xmm4,%xmm2
subpd  %xmm1,%xmm2
movaps %xmm2,%xmm1
unpckhpd %xmm2,%xmm2
addsd  %xmm1,%xmm2
movsd  0x161a(%rip),%xmm1
movaps %xmm2,%xmm4
addsd  %xmm1,%xmm4
movaps %xmm3,%xmm1
divsd  %xmm4,%xmm1
mulsd  %xmm3,%xmm1
movsd  0x1600(%rip),%xmm3
addsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
movsd  0x15e0(%rip),%xmm2
addsd  %xmm1,%xmm2
movsd  0x15d4(%rip),%xmm1
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x10(%rbp),%rax
add    $0xa,%rax
mov    %rax,-0x10(%rbp)
jmp    1610 <t4_f4+0x4d0>
movsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movslq -0x5c(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    0x3545(%rip),%rax
mov    (%rax),%edi
lea    -0x50(%rbp),%rsi
call   1040 <clock_gettime@plt>
mov    -0x48(%rbp),%edi
mov    -0x50(%rbp),%esi
lea    0x15d5(%rip),%rdx
call   1030 <elapsed_time_hr@plt>
movsd  -0x30(%rbp),%xmm0
movsd  0x156b(%rip),%xmm1
movsd  %xmm1,-0xd8(%rbp)
ff
mulsd  %xmm1,%xmm0
movaps 0x1530(%rip),%xmm2
movq   -0x40(%rbp),%xmm1
punpckldq %xmm2,%xmm1
movapd 0x152f(%rip),%xmm2
subpd  %xmm2,%xmm1
movaps %xmm1,%xmm2
unpckhpd %xmm1,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  0x152f(%rip),%xmm0
call   1060 <atan@plt>
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  0x1514(%rip),%xmm2
movaps %xmm0,%xmm1
subsd  %xmm2,%xmm1
cvttsd2si %xmm1,%rax
cvttsd2si %xmm0,%rsi
mov    %rsi,%rcx
sar    $0x3f,%rcx
and    %rcx,%rax
or     %rax,%rsi
movsd  -0x30(%rbp),%xmm1
subsd  -0x38(%rbp),%xmm1
movsd  0x14cc(%rip),%xmm0
mulsd  %xmm1,%xmm0
divsd  -0x38(%rbp),%xmm0
movaps 0x148c(%rip),%xmm1
pand   %xmm1,%xmm0
lea    0x1527(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    0x3453(%rip),%rax
mov    (%rax),%edi
lea    -0x48(%rbp),%rsi
call   1040 <clock_gettime@plt>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x68(%rbp)
movl   $0x0,-0x6c(%rbp)
movl   $0x0,-0x70(%rbp)
movq   $0x0,-0x10(%rbp)
mov    -0x10(%rbp),%rax
cmp    -0x40(%rbp),%rax
jae    24af <t4_f4+0x136f>
mov    -0x10(%rbp),%rax
and    $0x4,%rax
cmp    $0x0,%rax
jne    203e <t4_f4+0xefe>
mov    -0x6c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x6c(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm5
movaps 0x1418(%rip),%xmm4
movaps %xmm4,-0x110(%rbp)
punpckldq %xmm4,%xmm5
movapd 0x1415(%rip),%xmm1
movaps %xmm1,-0x100(%rbp)
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm2
unpckhpd %xmm5,%xmm5
addsd  %xmm2,%xmm5
movsd  0x142f(%rip),%xmm2
movsd  %xmm2,-0xe8(%rbp)
ff
subsd  %xmm2,%xmm5
movq   -0x40(%rbp),%xmm3
punpckldq %xmm4,%xmm3
subpd  %xmm1,%xmm3
movaps %xmm3,%xmm6
unpckhpd %xmm3,%xmm3
addsd  %xmm6,%xmm3
movaps %xmm5,%xmm6
divsd  %xmm3,%xmm6
mulsd  %xmm5,%xmm6
divsd  %xmm3,%xmm6
movsd  0x13dc(%rip),%xmm3
movsd  %xmm3,-0xe0(%rbp)
ff
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
addsd  %xmm3,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x133f(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x12df(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x1247(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x1217(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x11b7(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0x1157(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm6
punpckldq %xmm4,%xmm6
subpd  %xmm1,%xmm6
movaps %xmm6,%xmm5
unpckhpd %xmm6,%xmm6
addsd  %xmm5,%xmm6
movsd  0x10f7(%rip),%xmm5
addsd  %xmm5,%xmm6
movaps %xmm7,%xmm5
divsd  %xmm6,%xmm5
mulsd  %xmm7,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm3,%xmm5
divsd  %xmm5,%xmm3
addsd  %xmm3,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm3
punpckldq %xmm4,%xmm3
subpd  %xmm1,%xmm3
movaps %xmm3,%xmm5
unpckhpd %xmm3,%xmm3
addsd  %xmm5,%xmm3
subsd  %xmm2,%xmm3
movq   -0x40(%rbp),%xmm2
punpckldq %xmm4,%xmm2
subpd  %xmm1,%xmm2
movaps %xmm2,%xmm1
unpckhpd %xmm2,%xmm2
addsd  %xmm1,%xmm2
movsd  0x105a(%rip),%xmm1
movaps %xmm2,%xmm4
addsd  %xmm1,%xmm4
movaps %xmm3,%xmm1
divsd  %xmm4,%xmm1
mulsd  %xmm3,%xmm1
movsd  0x1040(%rip),%xmm3
addsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
movsd  0x1020(%rip),%xmm2
addsd  %xmm1,%xmm2
movsd  0x1014(%rip),%xmm1
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    2499 <t4_f4+0x1359>
mov    -0x70(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm5
movaps 0xfb8(%rip),%xmm4
movaps %xmm4,-0x140(%rbp)
punpckldq %xmm4,%xmm5
movapd 0xfb5(%rip),%xmm1
movaps %xmm1,-0x130(%rbp)
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm2
unpckhpd %xmm5,%xmm5
addsd  %xmm2,%xmm5
movsd  0xfcf(%rip),%xmm2
movsd  %xmm2,-0x120(%rbp)
ff
subsd  %xmm2,%xmm5
movq   -0x40(%rbp),%xmm3
punpckldq %xmm4,%xmm3
subpd  %xmm1,%xmm3
movaps %xmm3,%xmm6
unpckhpd %xmm3,%xmm3
addsd  %xmm6,%xmm3
movaps %xmm5,%xmm6
divsd  %xmm3,%xmm6
mulsd  %xmm5,%xmm6
divsd  %xmm3,%xmm6
movsd  0xf7c(%rip),%xmm3
movsd  %xmm3,-0x118(%rbp)
ff
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
addsd  %xmm3,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0xedf(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0xe7f(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0xde7(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0xdb7(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0xd57(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm5
punpckldq %xmm4,%xmm5
subpd  %xmm1,%xmm5
movaps %xmm5,%xmm6
unpckhpd %xmm5,%xmm5
addsd  %xmm6,%xmm5
movsd  0xcf7(%rip),%xmm6
addsd  %xmm6,%xmm5
movaps %xmm7,%xmm6
divsd  %xmm5,%xmm6
mulsd  %xmm7,%xmm6
divsd  %xmm5,%xmm6
addsd  %xmm3,%xmm6
movaps %xmm3,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm5,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm7
punpckldq %xmm4,%xmm7
subpd  %xmm1,%xmm7
movaps %xmm7,%xmm5
unpckhpd %xmm7,%xmm7
addsd  %xmm5,%xmm7
subsd  %xmm2,%xmm7
movq   -0x40(%rbp),%xmm6
punpckldq %xmm4,%xmm6
subpd  %xmm1,%xmm6
movaps %xmm6,%xmm5
unpckhpd %xmm6,%xmm6
addsd  %xmm5,%xmm6
movsd  0xc97(%rip),%xmm5
addsd  %xmm5,%xmm6
movaps %xmm7,%xmm5
divsd  %xmm6,%xmm5
mulsd  %xmm7,%xmm5
divsd  %xmm6,%xmm5
addsd  %xmm3,%xmm5
divsd  %xmm5,%xmm3
addsd  %xmm3,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movq   -0x10(%rbp),%xmm3
punpckldq %xmm4,%xmm3
subpd  %xmm1,%xmm3
movaps %xmm3,%xmm5
unpckhpd %xmm3,%xmm3
addsd  %xmm5,%xmm3
subsd  %xmm2,%xmm3
movq   -0x40(%rbp),%xmm2
punpckldq %xmm4,%xmm2
subpd  %xmm1,%xmm2
movaps %xmm2,%xmm1
unpckhpd %xmm2,%xmm2
addsd  %xmm1,%xmm2
movsd  0xbfa(%rip),%xmm1
movaps %xmm2,%xmm4
addsd  %xmm1,%xmm4
movaps %xmm3,%xmm1
divsd  %xmm4,%xmm1
mulsd  %xmm3,%xmm1
movsd  0xbe0(%rip),%xmm3
addsd  %xmm3,%xmm2
divsd  %xmm2,%xmm1
movsd  0xbc0(%rip),%xmm2
addsd  %xmm1,%xmm2
movsd  0xbb4(%rip),%xmm1
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    249e <t4_f4+0x135e>
mov    -0x10(%rbp),%rax
add    $0xa,%rax
mov    %rax,-0x10(%rbp)
jmp    1bbe <t4_f4+0xa7e>
movsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movslq -0x6c(%rbp),%rax
mov    %rax,-0x18(%rbp)
movslq -0x70(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    0x2b18(%rip),%rax
mov    (%rax),%edi
lea    -0x50(%rbp),%rsi
call   1040 <clock_gettime@plt>
mov    -0x48(%rbp),%edi
mov    -0x50(%rbp),%esi
lea    0xbd6(%rip),%rdx
call   1030 <elapsed_time_hr@plt>
movsd  -0x30(%rbp),%xmm0
movsd  0xb3e(%rip),%xmm1
movsd  %xmm1,-0x148(%rbp)
ff
mulsd  %xmm1,%xmm0
movaps 0xb03(%rip),%xmm2
movq   -0x40(%rbp),%xmm1
punpckldq %xmm2,%xmm1
movapd 0xb02(%rip),%xmm2
subpd  %xmm2,%xmm1
movaps %xmm1,%xmm2
unpckhpd %xmm1,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  0xb02(%rip),%xmm0
call   1060 <atan@plt>
movsd  -0x148(%rbp),%xmm1
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  0xae7(%rip),%xmm2
movaps %xmm0,%xmm1
subsd  %xmm2,%xmm1
cvttsd2si %xmm1,%rax
cvttsd2si %xmm0,%rsi
mov    %rsi,%rcx
sar    $0x3f,%rcx
and    %rcx,%rax
or     %rax,%rsi
movsd  -0x30(%rbp),%xmm1
subsd  -0x38(%rbp),%xmm1
movsd  0xa9f(%rip),%xmm0
mulsd  %xmm1,%xmm0
divsd  -0x38(%rbp),%xmm0
movaps 0xa5f(%rip),%xmm1
pand   %xmm1,%xmm0
lea    0xafa(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    -0x28(%rbp),%rsi
lea    0xb0f(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    -0x18(%rbp),%rsi
lea    0xb0a(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    -0x20(%rbp),%rsi
lea    0xb07(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
xor    %eax,%eax
add    $0x150,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<t4_f4>:
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x38,%rsp
mov    %rdi,%r14
mov    0x2e93(%rip),%r12
mov    (%r12),%edi
lea    0x8(%rsp),%rsi
call   1040 <clock_gettime@plt>
movq   %r14,%xmm0
punpckldq 0xe90(%rip),%xmm0
subpd  0xe98(%rip),%xmm0
movapd %xmm0,%xmm1
unpckhpd %xmm0,%xmm1
addsd  %xmm0,%xmm1
test   %r14,%r14
movapd %xmm1,0x20(%rsp)
je     13e8 <t4_f4+0x2a8>
movsd  0xe94(%rip),%xmm8
addsd  %xmm1,%xmm8
movsd  0xe8e(%rip),%xmm12
addsd  %xmm1,%xmm12
movsd  0xe88(%rip),%xmm13
addsd  %xmm1,%xmm13
movsd  0xe82(%rip),%xmm14
addsd  %xmm1,%xmm14
movsd  0xe7c(%rip),%xmm15
addsd  %xmm1,%xmm15
movsd  0xe76(%rip),%xmm11
addsd  %xmm1,%xmm11
movsd  0xe71(%rip),%xmm6
addsd  %xmm1,%xmm6
movsd  0xe6d(%rip),%xmm7
addsd  %xmm1,%xmm7
movsd  0xe69(%rip),%xmm0
addsd  %xmm1,%xmm0
xorpd  %xmm5,%xmm5
xor    %r15d,%r15d
movsd  0xe15(%rip),%xmm10
xor    %eax,%eax
nopl   (%rax)
movq   %rax,%xmm2
punpckldq 0xdd3(%rip),%xmm2
subpd  0xddb(%rip),%xmm2
movapd %xmm2,%xmm9
unpckhpd %xmm2,%xmm9
addsd  %xmm2,%xmm9
addsd  0xe2b(%rip),%xmm9
movapd %xmm9,%xmm2
divsd  %xmm1,%xmm2
mulsd  %xmm9,%xmm2
divsd  %xmm1,%xmm2
addsd  %xmm10,%xmm2
movapd %xmm10,%xmm1
movapd %xmm9,%xmm3
divsd  %xmm8,%xmm3
mulsd  %xmm9,%xmm3
divsd  %xmm2,%xmm1
divsd  %xmm8,%xmm3
addsd  %xmm10,%xmm3
movapd %xmm10,%xmm2
divsd  %xmm3,%xmm2
movapd %xmm9,%xmm3
addsd  %xmm5,%xmm1
divsd  %xmm12,%xmm3
mulsd  %xmm9,%xmm3
divsd  %xmm12,%xmm3
movapd %xmm10,%xmm4
addsd  %xmm10,%xmm3
divsd  %xmm3,%xmm4
movapd %xmm9,%xmm3
divsd  %xmm13,%xmm3
mulsd  %xmm9,%xmm3
addsd  %xmm1,%xmm2
divsd  %xmm13,%xmm3
addsd  %xmm10,%xmm3
movapd %xmm10,%xmm1
divsd  %xmm3,%xmm1
movapd %xmm9,%xmm3
addsd  %xmm2,%xmm4
divsd  %xmm14,%xmm3
mulsd  %xmm9,%xmm3
divsd  %xmm14,%xmm3
movapd %xmm10,%xmm2
addsd  %xmm10,%xmm3
divsd  %xmm3,%xmm2
movapd %xmm9,%xmm3
divsd  %xmm15,%xmm3
mulsd  %xmm9,%xmm3
addsd  %xmm4,%xmm1
divsd  %xmm15,%xmm3
addsd  %xmm10,%xmm3
movapd %xmm10,%xmm4
divsd  %xmm3,%xmm4
movapd %xmm9,%xmm3
addsd  %xmm1,%xmm2
divsd  %xmm11,%xmm3
mulsd  %xmm9,%xmm3
divsd  %xmm11,%xmm3
movapd %xmm10,%xmm1
addsd  %xmm10,%xmm3
divsd  %xmm3,%xmm1
movapd %xmm9,%xmm3
divsd  %xmm6,%xmm3
mulsd  %xmm9,%xmm3
addsd  %xmm2,%xmm4
divsd  %xmm6,%xmm3
addsd  %xmm10,%xmm3
movapd %xmm10,%xmm2
divsd  %xmm3,%xmm2
movapd %xmm9,%xmm3
addsd  %xmm4,%xmm1
divsd  %xmm7,%xmm3
mulsd  %xmm9,%xmm3
divsd  %xmm7,%xmm3
movapd %xmm10,%xmm4
addsd  %xmm10,%xmm3
divsd  %xmm3,%xmm4
movapd %xmm9,%xmm3
divsd  %xmm0,%xmm3
mulsd  %xmm9,%xmm3
addsd  %xmm1,%xmm2
movapd 0x20(%rsp),%xmm1
divsd  %xmm0,%xmm3
addsd  %xmm10,%xmm3
movapd %xmm10,%xmm5
divsd  %xmm3,%xmm5
addsd  %xmm2,%xmm4
addsd  %xmm4,%xmm5
add    $0xa,%rax
add    $0x1,%r15
cmp    %r14,%rax
jb     1220 <t4_f4+0xe0>
mulsd  0xc68(%rip),%xmm5
movapd %xmm5,0x10(%rsp)
jmp    13f5 <t4_f4+0x2b5>
xor    %r15d,%r15d
xorpd  %xmm0,%xmm0
movapd %xmm0,0x10(%rsp)
mov    (%r12),%edi
mov    %rsp,%rsi
call   1040 <clock_gettime@plt>
mov    0x8(%rsp),%edi
mov    (%rsp),%esi
lea    0xc91(%rip),%rdx
call   1030 <elapsed_time_hr@plt>
movapd 0x10(%rsp),%xmm0
divsd  0x20(%rsp),%xmm0
movapd %xmm0,0x10(%rsp)
movsd  0xc02(%rip),%xmm0
call   1060 <atan@plt>
movapd 0x10(%rsp),%xmm1
cvttsd2si %xmm1,%rax
mov    %rax,%rcx
sar    $0x3f,%rcx
movapd %xmm1,%xmm0
subsd  0xc2f(%rip),%xmm0
cvttsd2si %xmm0,%rsi
and    %rcx,%rsi
or     %rax,%rsi
addsd  0xc24(%rip),%xmm1
mulsd  0xc24(%rip),%xmm1
divsd  0xc24(%rip),%xmm1
andpd  0xba4(%rip),%xmm1
movapd %xmm1,%xmm0
lea    0xc2f(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
mov    (%r12),%edi
lea    0x8(%rsp),%rsi
call   1040 <clock_gettime@plt>
xor    %ebx,%ebx
test   %r14,%r14
je     173f <t4_f4+0x5ff>
movsd  0xb80(%rip),%xmm8
movapd 0x20(%rsp),%xmm1
addsd  %xmm1,%xmm8
movsd  0xb74(%rip),%xmm12
addsd  %xmm1,%xmm12
movsd  0xb6e(%rip),%xmm13
addsd  %xmm1,%xmm13
movsd  0xb68(%rip),%xmm14
addsd  %xmm1,%xmm14
movsd  0xb62(%rip),%xmm15
addsd  %xmm1,%xmm15
movsd  0xb5c(%rip),%xmm10
addsd  %xmm1,%xmm10
movsd  0xb56(%rip),%xmm11
addsd  %xmm1,%xmm11
movsd  0xb51(%rip),%xmm7
addsd  %xmm1,%xmm7
movsd  0xb4d(%rip),%xmm0
addsd  %xmm1,%xmm0
xorpd  %xmm6,%xmm6
xor    %eax,%eax
xor    %ecx,%ecx
movsd  0xaf9(%rip),%xmm3
nopw   0x0(%rax,%rax,1)
movq   %rcx,%xmm1
punpckldq 0xab3(%rip),%xmm1
subpd  0xabb(%rip),%xmm1
movapd %xmm1,%xmm4
unpckhpd %xmm1,%xmm4
addsd  %xmm1,%xmm4
addsd  0xb0f(%rip),%xmm4
movapd %xmm4,%xmm1
movapd 0x20(%rsp),%xmm2
divsd  %xmm2,%xmm1
mulsd  %xmm4,%xmm1
divsd  %xmm2,%xmm1
addsd  %xmm3,%xmm1
movsd  0xaa5(%rip),%xmm3
movapd %xmm4,%xmm2
divsd  %xmm8,%xmm2
mulsd  %xmm4,%xmm2
divsd  %xmm1,%xmm3
divsd  %xmm8,%xmm2
addsd  0xa87(%rip),%xmm2
movsd  0xa7f(%rip),%xmm1
divsd  %xmm2,%xmm1
movapd %xmm4,%xmm2
addsd  %xmm6,%xmm3
divsd  %xmm12,%xmm2
mulsd  %xmm4,%xmm2
divsd  %xmm12,%xmm2
movsd  0xa5c(%rip),%xmm9
addsd  0xa54(%rip),%xmm2
divsd  %xmm2,%xmm9
movapd %xmm4,%xmm2
divsd  %xmm13,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm1
divsd  %xmm13,%xmm2
addsd  0xa31(%rip),%xmm2
movsd  0xa29(%rip),%xmm3
divsd  %xmm2,%xmm3
movapd %xmm4,%xmm2
addsd  %xmm1,%xmm9
divsd  %xmm14,%xmm2
mulsd  %xmm4,%xmm2
divsd  %xmm14,%xmm2
movsd  0xa06(%rip),%xmm1
addsd  0x9fe(%rip),%xmm2
divsd  %xmm2,%xmm1
movapd %xmm4,%xmm2
divsd  %xmm15,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm9,%xmm3
divsd  %xmm15,%xmm2
addsd  0x9db(%rip),%xmm2
movsd  0x9d3(%rip),%xmm5
divsd  %xmm2,%xmm5
movapd %xmm4,%xmm2
addsd  %xmm3,%xmm1
divsd  %xmm10,%xmm2
mulsd  %xmm4,%xmm2
divsd  %xmm10,%xmm2
movsd  0x9b1(%rip),%xmm3
addsd  0x9a9(%rip),%xmm2
divsd  %xmm2,%xmm3
movapd %xmm4,%xmm2
divsd  %xmm11,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm1,%xmm5
divsd  %xmm11,%xmm2
addsd  0x987(%rip),%xmm2
movsd  0x97f(%rip),%xmm1
divsd  %xmm2,%xmm1
movapd %xmm4,%xmm2
addsd  %xmm5,%xmm3
divsd  %xmm7,%xmm2
mulsd  %xmm4,%xmm2
divsd  %xmm7,%xmm2
movsd  0x95f(%rip),%xmm5
addsd  0x957(%rip),%xmm2
divsd  %xmm2,%xmm5
movapd %xmm4,%xmm2
divsd  %xmm0,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm1
movsd  0x93b(%rip),%xmm3
divsd  %xmm0,%xmm2
addsd  %xmm3,%xmm2
movapd %xmm3,%xmm6
divsd  %xmm2,%xmm6
addsd  %xmm1,%xmm5
addsd  %xmm5,%xmm6
mov    %ecx,%edx
and    $0x4,%edx
shr    $0x2,%rdx
add    %edx,%ebx
xor    $0x1,%edx
add    %edx,%eax
add    $0xa,%rcx
cmp    %r14,%rcx
jb     1540 <t4_f4+0x400>
mov    %ebx,%r14d
mov    %eax,%ebx
mulsd  0x911(%rip),%xmm6
movapd %xmm6,0x10(%rsp)
jmp    174c <t4_f4+0x60c>
xor    %r14d,%r14d
xorpd  %xmm0,%xmm0
movapd %xmm0,0x10(%rsp)
mov    (%r12),%edi
mov    %rsp,%rsi
call   1040 <clock_gettime@plt>
mov    0x8(%rsp),%edi
mov    (%rsp),%esi
lea    0x968(%rip),%rdx
call   1030 <elapsed_time_hr@plt>
movapd 0x10(%rsp),%xmm0
divsd  0x20(%rsp),%xmm0
movapd %xmm0,0x10(%rsp)
movsd  0x8ab(%rip),%xmm0
call   1060 <atan@plt>
movapd 0x10(%rsp),%xmm1
cvttsd2si %xmm1,%rax
mov    %rax,%rcx
sar    $0x3f,%rcx
movapd %xmm1,%xmm0
subsd  0x8d8(%rip),%xmm0
cvttsd2si %xmm0,%rsi
and    %rcx,%rsi
or     %rax,%rsi
addsd  0x8cd(%rip),%xmm1
mulsd  0x8cd(%rip),%xmm1
divsd  0x8cd(%rip),%xmm1
andpd  0x84d(%rip),%xmm1
movapd %xmm1,%xmm0
lea    0x8d8(%rip),%rdi
mov    $0x1,%al
call   1050 <printf@plt>
lea    0x8f1(%rip),%rdi
mov    %r15,%rsi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x8ed(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x8eb(%rip),%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <printf@plt>
xor    %eax,%eax
add    $0x38,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
%struct.timespec = type { i32 }
@CLOCK_MONOTONIC = global i32 0
@.str = [22 x i8] c"Loop without branches\00"
@.str.1 = [24 x i8] c"pi = %f, %% error = %f\0A\00"
@.str.2 = [15 x i8] c"4xTRUE 4xFALSE\00"
@.str.3 = [13 x i8] c"count = %ld\0A\00"
@.str.4 = [15 x i8] c"is_true = %ld\0A\00"
@.str.5 = [16 x i8] c"is_false = %ld\0A\00"
define i32 @t4_f4(i64 %0) {
%2 = alloca i64
%3 = alloca i64
%4 = alloca i64
%5 = alloca i64
%6 = alloca i64
%7 = alloca double
%8 = alloca double
%9 = alloca i64
%10 = alloca %struct.timespec
%11 = alloca %struct.timespec
%12 = alloca double
%13 = alloca i32
%14 = alloca double
%15 = alloca i32
%16 = alloca i32
store i64 %0, i64* %2
store i64 0, i64* %4
store i64 0, i64* %5
store i64 0, i64* %6
%17 = load i64, i64* %2
store i64 %17, i64* %9
store i64 0, i64* %3
br label %18
18: ; preds = %210, %1
%19 = load i64, i64* %3
%20 = icmp ult i64 %19, 100
br i1 %20, label %21, label %213
21: ; preds = %18
%22 = load double, double* %7
%23 = load i64, i64* %3
%24 = uitofp i64 %23 to double
%25 = fsub double %24, 5.000000e-01
%26 = load i64, i64* %9
%27 = uitofp i64 %26 to double
%28 = fdiv double %25, %27
%29 = load i64, i64* %3
%30 = uitofp i64 %29 to double
%31 = fsub double %30, 5.000000e-01
%32 = fmul double %28, %31
%33 = load i64, i64* %9
%34 = uitofp i64 %33 to double
%35 = fdiv double %32, %34
%36 = fadd double 1.000000e+00, %35
%37 = fdiv double 1.000000e+00, %36
%38 = fadd double %22, %37
store double %38, double* %7
%39 = load double, double* %7
%40 = load i64, i64* %3
%41 = uitofp i64 %40 to double
%42 = fsub double %41, 5.000000e-01
%43 = load i64, i64* %9
%44 = uitofp i64 %43 to double
%45 = fadd double %44, 1.000000e+00
%46 = fdiv double %42, %45
%47 = load i64, i64* %3
%48 = uitofp i64 %47 to double
%49 = fsub double %48, 5.000000e-01
%50 = fmul double %46, %49
%51 = load i64, i64* %9
%52 = uitofp i64 %51 to double
%53 = fadd double %52, 1.000000e+00
%54 = fdiv double %50, %53
%55 = fadd double 1.000000e+00, %54
%56 = fdiv double 1.000000e+00, %55
%57 = fadd double %39, %56
store double %57, double* %7
%58 = load double, double* %7
%59 = load i64, i64* %3
%60 = uitofp i64 %59 to double
%61 = fsub double %60, 5.000000e-01
%62 = load i64, i64* %9
%63 = uitofp i64 %62 to double
%64 = fadd double %63, 2.000000e+00
%65 = fdiv double %61, %64
%66 = load i64, i64* %3
%67 = uitofp i64 %66 to double
%68 = fsub double %67, 5.000000e-01
%69 = fmul double %65, %68
%70 = load i64, i64* %9
%71 = uitofp i64 %70 to double
%72 = fadd double %71, 2.000000e+00
%73 = fdiv double %69, %72
%74 = fadd double 1.000000e+00, %73
%75 = fdiv double 1.000000e+00, %74
%76 = fadd double %58, %75
store double %76, double* %7
%77 = load double, double* %7
%78 = load i64, i64* %3
%79 = uitofp i64 %78 to double
%80 = fsub double %79, 5.000000e-01
%81 = load i64, i64* %9
%82 = uitofp i64 %81 to double
%83 = fadd double %82, 3.000000e+00
%84 = fdiv double %80, %83
%85 = load i64, i64* %3
%86 = uitofp i64 %85 to double
%87 = fsub double %86, 5.000000e-01
%88 = fmul double %84, %87
%89 = load i64, i64* %9
%90 = uitofp i64 %89 to double
%91 = fadd double %90, 3.000000e+00
%92 = fdiv double %88, %91
%93 = fadd double 1.000000e+00, %92
%94 = fdiv double 1.000000e+00, %93
%95 = fadd double %77, %94
store double %95, double* %7
%96 = load double, double* %7
%97 = load i64, i64* %3
%98 = uitofp i64 %97 to double
%99 = fsub double %98, 5.000000e-01
%100 = load i64, i64* %9
%101 = uitofp i64 %100 to double
%102 = fadd double %101, 4.000000e+00
%103 = fdiv double %99, %102
%104 = load i64, i64* %3
%105 = uitofp i64 %104 to double
%106 = fsub double %105, 5.000000e-01
%107 = fmul double %103, %106
%108 = load i64, i64* %9
%109 = uitofp i64 %108 to double
%110 = fadd double %109, 4.000000e+00
%111 = fdiv double %107, %110
%112 = fadd double 1.000000e+00, %111
%113 = fdiv double 1.000000e+00, %112
%114 = fadd double %96, %113
store double %114, double* %7
%115 = load double, double* %7
%116 = load i64, i64* %3
%117 = uitofp i64 %116 to double
%118 = fsub double %117, 5.000000e-01
%119 = load i64, i64* %9
%120 = uitofp i64 %119 to double
%121 = fadd double %120, 5.000000e+00
%122 = fdiv double %118, %121
%123 = load i64, i64* %3
%124 = uitofp i64 %123 to double
%125 = fsub double %124, 5.000000e-01
%126 = fmul double %122, %125
%127 = load i64, i64* %9
%128 = uitofp i64 %127 to double
%129 = fadd double %128, 5.000000e+00
%130 = fdiv double %126, %129
%131 = fadd double 1.000000e+00, %130
%132 = fdiv double 1.000000e+00, %131
%133 = fadd double %115, %132
store double %133, double* %7
%134 = load double, double* %7
%135 = load i64, i64* %3
%136 = uitofp i64 %135 to double
%137 = fsub double %136, 5.000000e-01
%138 = load i64, i64* %9
%139 = uitofp i64 %138 to double
%140 = fadd double %139, 6.000000e+00
%141 = fdiv double %137, %140
%142 = load i64, i64* %3
%143 = uitofp i64 %142 to double
%144 = fsub double %143, 5.000000e-01
%145 = fmul double %141, %144
%146 = load i64, i64* %9
%147 = uitofp i64 %146 to double
%148 = fadd double %147, 6.000000e+00
%149 = fdiv double %145, %148
%150 = fadd double 1.000000e+00, %149
%151 = fdiv double 1.000000e+00, %150
%152 = fadd double %134, %151
store double %152, double* %7
%153 = load double, double* %7
%154 = load i64, i64* %3
%155 = uitofp i64 %154 to double
%156 = fsub double %155, 5.000000e-01
%157 = load i64, i64* %9
%158 = uitofp i64 %157 to double
%159 = fadd double %158, 7.000000e+00
%160 = fdiv double %156, %159
%161 = load i64, i64* %3
%162 = uitofp i64 %161 to double
%163 = fsub double %162, 5.000000e-01
%164 = fmul double %160, %163
%165 = load i64, i64* %9
%166 = uitofp i64 %165 to double
%167 = fadd double %166, 7.000000e+00
%168 = fdiv double %164, %167
%169 = fadd double 1.000000e+00, %168
%170 = fdiv double 1.000000e+00, %169
%171 = fadd double %153, %170
store double %171, double* %7
%172 = load double, double* %7
%173 = load i64, i64* %3
%174 = uitofp i64 %173 to double
%175 = fsub double %174, 5.000000e-01
%176 = load i64, i64* %9
%177 = uitofp i64 %176 to double
%178 = fadd double %177, 8.000000e+00
%179 = fdiv double %175, %178
%180 = load i64, i64* %3
%181 = uitofp i64 %180 to double
%182 = fsub double %181, 5.000000e-01
%183 = fmul double %179, %182
%184 = load i64, i64* %9
%185 = uitofp i64 %184 to double
%186 = fadd double %185, 8.000000e+00
%187 = fdiv double %183, %186
%188 = fadd double 1.000000e+00, %187
%189 = fdiv double 1.000000e+00, %188
%190 = fadd double %172, %189
store double %190, double* %7
%191 = load double, double* %7
%192 = load i64, i64* %3
%193 = uitofp i64 %192 to double
%194 = fsub double %193, 5.000000e-01
%195 = load i64, i64* %9
%196 = uitofp i64 %195 to double
%197 = fadd double %196, 9.000000e+00
%198 = fdiv double %194, %197
%199 = load i64, i64* %3
%200 = uitofp i64 %199 to double
%201 = fsub double %200, 5.000000e-01
%202 = fmul double %198, %201
%203 = load i64, i64* %9
%204 = uitofp i64 %203 to double
%205 = fadd double %204, 9.000000e+00
%206 = fdiv double %202, %205
%207 = fadd double 1.000000e+00, %206
%208 = fdiv double 1.000000e+00, %207
%209 = fadd double %191, %208
store double %209, double* %7
br label %210
210: ; preds = %21
%211 = load i64, i64* %3
%212 = add i64 %211, 10
store i64 %212, i64* %3
br label %18
213: ; preds = %18
store double 0.000000e+00, double* %7
%214 = load i32, i32* @CLOCK_MONOTONIC
%215 = call i32 @clock_gettime(i32 %214, %struct.timespec* %10)
store double 0.000000e+00, double* %12
store i32 0, i32* %13
store i64 0, i64* %3
br label %216
216: ; preds = %411, %213
%217 = load i64, i64* %3
%218 = load i64, i64* %9
%219 = icmp ult i64 %217, %218
br i1 %219, label %220, label %414
220: ; preds = %216
%221 = load i32, i32* %13
%222 = add nsw i32 %221, 1
store i32 %222, i32* %13
%223 = load double, double* %12
%224 = load i64, i64* %3
%225 = uitofp i64 %224 to double
%226 = fsub double %225, 5.000000e-01
%227 = load i64, i64* %9
%228 = uitofp i64 %227 to double
%229 = fdiv double %226, %228
%230 = load i64, i64* %3
%231 = uitofp i64 %230 to double
%232 = fsub double %231, 5.000000e-01
%233 = fmul double %229, %232
%234 = load i64, i64* %9
%235 = uitofp i64 %234 to double
%236 = fdiv double %233, %235
%237 = fadd double 1.000000e+00, %236
%238 = fdiv double 1.000000e+00, %237
%239 = fadd double %223, %238
store double %239, double* %12
%240 = load double, double* %12
%241 = load i64, i64* %3
%242 = uitofp i64 %241 to double
%243 = fsub double %242, 5.000000e-01
%244 = load i64, i64* %9
%245 = uitofp i64 %244 to double
%246 = fadd double %245, 1.000000e+00
%247 = fdiv double %243, %246
%248 = load i64, i64* %3
%249 = uitofp i64 %248 to double
%250 = fsub double %249, 5.000000e-01
%251 = fmul double %247, %250
%252 = load i64, i64* %9
%253 = uitofp i64 %252 to double
%254 = fadd double %253, 1.000000e+00
%255 = fdiv double %251, %254
%256 = fadd double 1.000000e+00, %255
%257 = fdiv double 1.000000e+00, %256
%258 = fadd double %240, %257
store double %258, double* %12
%259 = load double, double* %12
%260 = load i64, i64* %3
%261 = uitofp i64 %260 to double
%262 = fsub double %261, 5.000000e-01
%263 = load i64, i64* %9
%264 = uitofp i64 %263 to double
%265 = fadd double %264, 2.000000e+00
%266 = fdiv double %262, %265
%267 = load i64, i64* %3
%268 = uitofp i64 %267 to double
%269 = fsub double %268, 5.000000e-01
%270 = fmul double %266, %269
%271 = load i64, i64* %9
%272 = uitofp i64 %271 to double
%273 = fadd double %272, 2.000000e+00
%274 = fdiv double %270, %273
%275 = fadd double 1.000000e+00, %274
%276 = fdiv double 1.000000e+00, %275
%277 = fadd double %259, %276
store double %277, double* %12
%278 = load double, double* %12
%279 = load i64, i64* %3
%280 = uitofp i64 %279 to double
%281 = fsub double %280, 5.000000e-01
%282 = load i64, i64* %9
%283 = uitofp i64 %282 to double
%284 = fadd double %283, 3.000000e+00
%285 = fdiv double %281, %284
%286 = load i64, i64* %3
%287 = uitofp i64 %286 to double
%288 = fsub double %287, 5.000000e-01
%289 = fmul double %285, %288
%290 = load i64, i64* %9
%291 = uitofp i64 %290 to double
%292 = fadd double %291, 3.000000e+00
%293 = fdiv double %289, %292
%294 = fadd double 1.000000e+00, %293
%295 = fdiv double 1.000000e+00, %294
%296 = fadd double %278, %295
store double %296, double* %12
%297 = load double, double* %12
%298 = load i64, i64* %3
%299 = uitofp i64 %298 to double
%300 = fsub double %299, 5.000000e-01
%301 = load i64, i64* %9
%302 = uitofp i64 %301 to double
%303 = fadd double %302, 4.000000e+00
%304 = fdiv double %300, %303
%305 = load i64, i64* %3
%306 = uitofp i64 %305 to double
%307 = fsub double %306, 5.000000e-01
%308 = fmul double %304, %307
%309 = load i64, i64* %9
%310 = uitofp i64 %309 to double
%311 = fadd double %310, 4.000000e+00
%312 = fdiv double %308, %311
%313 = fadd double 1.000000e+00, %312
%314 = fdiv double 1.000000e+00, %313
%315 = fadd double %297, %314
store double %315, double* %12
%316 = load double, double* %12
%317 = load i64, i64* %3
%318 = uitofp i64 %317 to double
%319 = fsub double %318, 5.000000e-01
%320 = load i64, i64* %9
%321 = uitofp i64 %320 to double
%322 = fadd double %321, 5.000000e+00
%323 = fdiv double %319, %322
%324 = load i64, i64* %3
%325 = uitofp i64 %324 to double
%326 = fsub double %325, 5.000000e-01
%327 = fmul double %323, %326
%328 = load i64, i64* %9
%329 = uitofp i64 %328 to double
%330 = fadd double %329, 5.000000e+00
%331 = fdiv double %327, %330
%332 = fadd double 1.000000e+00, %331
%333 = fdiv double 1.000000e+00, %332
%334 = fadd double %316, %333
store double %334, double* %12
%335 = load double, double* %12
%336 = load i64, i64* %3
%337 = uitofp i64 %336 to double
%338 = fsub double %337, 5.000000e-01
%339 = load i64, i64* %9
%340 = uitofp i64 %339 to double
%341 = fadd double %340, 6.000000e+00
%342 = fdiv double %338, %341
%343 = load i64, i64* %3
%344 = uitofp i64 %343 to double
%345 = fsub double %344, 5.000000e-01
%346 = fmul double %342, %345
%347 = load i64, i64* %9
%348 = uitofp i64 %347 to double
%349 = fadd double %348, 6.000000e+00
%350 = fdiv double %346, %349
%351 = fadd double 1.000000e+00, %350
%352 = fdiv double 1.000000e+00, %351
%353 = fadd double %335, %352
store double %353, double* %12
%354 = load double, double* %12
%355 = load i64, i64* %3
%356 = uitofp i64 %355 to double
%357 = fsub double %356, 5.000000e-01
%358 = load i64, i64* %9
%359 = uitofp i64 %358 to double
%360 = fadd double %359, 7.000000e+00
%361 = fdiv double %357, %360
%362 = load i64, i64* %3
%363 = uitofp i64 %362 to double
%364 = fsub double %363, 5.000000e-01
%365 = fmul double %361, %364
%366 = load i64, i64* %9
%367 = uitofp i64 %366 to double
%368 = fadd double %367, 7.000000e+00
%369 = fdiv double %365, %368
%370 = fadd double 1.000000e+00, %369
%371 = fdiv double 1.000000e+00, %370
%372 = fadd double %354, %371
store double %372, double* %12
%373 = load double, double* %12
%374 = load i64, i64* %3
%375 = uitofp i64 %374 to double
%376 = fsub double %375, 5.000000e-01
%377 = load i64, i64* %9
%378 = uitofp i64 %377 to double
%379 = fadd double %378, 8.000000e+00
%380 = fdiv double %376, %379
%381 = load i64, i64* %3
%382 = uitofp i64 %381 to double
%383 = fsub double %382, 5.000000e-01
%384 = fmul double %380, %383
%385 = load i64, i64* %9
%386 = uitofp i64 %385 to double
%387 = fadd double %386, 8.000000e+00
%388 = fdiv double %384, %387
%389 = fadd double 1.000000e+00, %388
%390 = fdiv double 1.000000e+00, %389
%391 = fadd double %373, %390
store double %391, double* %12
%392 = load double, double* %12
%393 = load i64, i64* %3
%394 = uitofp i64 %393 to double
%395 = fsub double %394, 5.000000e-01
%396 = load i64, i64* %9
%397 = uitofp i64 %396 to double
%398 = fadd double %397, 9.000000e+00
%399 = fdiv double %395, %398
%400 = load i64, i64* %3
%401 = uitofp i64 %400 to double
%402 = fsub double %401, 5.000000e-01
%403 = fmul double %399, %402
%404 = load i64, i64* %9
%405 = uitofp i64 %404 to double
%406 = fadd double %405, 9.000000e+00
%407 = fdiv double %403, %406
%408 = fadd double 1.000000e+00, %407
%409 = fdiv double 1.000000e+00, %408
%410 = fadd double %392, %409
store double %410, double* %12
br label %411
411: ; preds = %220
%412 = load i64, i64* %3
%413 = add i64 %412, 10
store i64 %413, i64* %3
br label %216
414: ; preds = %216
%415 = load double, double* %12
store double %415, double* %7
%416 = load i32, i32* %13
%417 = sext i32 %416 to i64
store i64 %417, i64* %6
%418 = load i32, i32* @CLOCK_MONOTONIC
%419 = call i32 @clock_gettime(i32 %418, %struct.timespec* %11)
%420 = getelementptr inbounds %struct.timespec, %struct.timespec* %10, i32 0, i32 0
%421 = load i32, i32* %420
%422 = getelementptr inbounds %struct.timespec, %struct.timespec* %11, i32 0, i32 0
%423 = load i32, i32* %422
%424 = call i32 @elapsed_time_hr(i32 %421, i32 %423, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str, i64 0, i64 0))
%425 = load double, double* %7
%426 = fmul double %425, 4.000000e+00
%427 = load i64, i64* %9
%428 = uitofp i64 %427 to double
%429 = fdiv double %426, %428
store double %429, double* %7
%430 = call double @atan(double 1.000000e+00)
%431 = fmul double 4.000000e+00, %430
store double %431, double* %8
%432 = load double, double* %7
%433 = fptoui double %432 to i64
%434 = load double, double* %7
%435 = load double, double* %8
%436 = fsub double %434, %435
%437 = fmul double 1.000000e+02, %436
%438 = load double, double* %8
%439 = fdiv double %437, %438
%440 = call double @llvm.fabs.f64(double %439)
%441 = call i32 (i8*, i64, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.1, i64 0, i64 0), i64 %433, double %440)
store double 0.000000e+00, double* %7
%442 = load i32, i32* @CLOCK_MONOTONIC
%443 = call i32 @clock_gettime(i32 %442, %struct.timespec* %10)
store double 0.000000e+00, double* %14
store i32 0, i32* %15
store i32 0, i32* %16
store i64 0, i64* %3
br label %444
444: ; preds = %835, %414
%445 = load i64, i64* %3
%446 = load i64, i64* %9
%447 = icmp ult i64 %445, %446
br i1 %447, label %448, label %838
448: ; preds = %444
%449 = load i64, i64* %3
%450 = and i64 %449, 4
%451 = icmp eq i64 %450, 0
br i1 %451, label %452, label %643
452: ; preds = %448
%453 = load i32, i32* %15
%454 = add nsw i32 %453, 1
store i32 %454, i32* %15
%455 = load double, double* %14
%456 = load i64, i64* %3
%457 = uitofp i64 %456 to double
%458 = fsub double %457, 5.000000e-01
%459 = load i64, i64* %9
%460 = uitofp i64 %459 to double
%461 = fdiv double %458, %460
%462 = load i64, i64* %3
%463 = uitofp i64 %462 to double
%464 = fsub double %463, 5.000000e-01
%465 = fmul double %461, %464
%466 = load i64, i64* %9
%467 = uitofp i64 %466 to double
%468 = fdiv double %465, %467
%469 = fadd double 1.000000e+00, %468
%470 = fdiv double 1.000000e+00, %469
%471 = fadd double %455, %470
store double %471, double* %14
%472 = load double, double* %14
%473 = load i64, i64* %3
%474 = uitofp i64 %473 to double
%475 = fsub double %474, 5.000000e-01
%476 = load i64, i64* %9
%477 = uitofp i64 %476 to double
%478 = fadd double %477, 1.000000e+00
%479 = fdiv double %475, %478
%480 = load i64, i64* %3
%481 = uitofp i64 %480 to double
%482 = fsub double %481, 5.000000e-01
%483 = fmul double %479, %482
%484 = load i64, i64* %9
%485 = uitofp i64 %484 to double
%486 = fadd double %485, 1.000000e+00
%487 = fdiv double %483, %486
%488 = fadd double 1.000000e+00, %487
%489 = fdiv double 1.000000e+00, %488
%490 = fadd double %472, %489
store double %490, double* %14
%491 = load double, double* %14
%492 = load i64, i64* %3
%493 = uitofp i64 %492 to double
%494 = fsub double %493, 5.000000e-01
%495 = load i64, i64* %9
%496 = uitofp i64 %495 to double
%497 = fadd double %496, 2.000000e+00
%498 = fdiv double %494, %497
%499 = load i64, i64* %3
%500 = uitofp i64 %499 to double
%501 = fsub double %500, 5.000000e-01
%502 = fmul double %498, %501
%503 = load i64, i64* %9
%504 = uitofp i64 %503 to double
%505 = fadd double %504, 2.000000e+00
%506 = fdiv double %502, %505
%507 = fadd double 1.000000e+00, %506
%508 = fdiv double 1.000000e+00, %507
%509 = fadd double %491, %508
store double %509, double* %14
%510 = load double, double* %14
%511 = load i64, i64* %3
%512 = uitofp i64 %511 to double
%513 = fsub double %512, 5.000000e-01
%514 = load i64, i64* %9
%515 = uitofp i64 %514 to double
%516 = fadd double %515, 3.000000e+00
%517 = fdiv double %513, %516
%518 = load i64, i64* %3
%519 = uitofp i64 %518 to double
%520 = fsub double %519, 5.000000e-01
%521 = fmul double %517, %520
%522 = load i64, i64* %9
%523 = uitofp i64 %522 to double
%524 = fadd double %523, 3.000000e+00
%525 = fdiv double %521, %524
%526 = fadd double 1.000000e+00, %525
%527 = fdiv double 1.000000e+00, %526
%528 = fadd double %510, %527
store double %528, double* %14
%529 = load double, double* %14
%530 = load i64, i64* %3
%531 = uitofp i64 %530 to double
%532 = fsub double %531, 5.000000e-01
%533 = load i64, i64* %9
%534 = uitofp i64 %533 to double
%535 = fadd double %534, 4.000000e+00
%536 = fdiv double %532, %535
%537 = load i64, i64* %3
%538 = uitofp i64 %537 to double
%539 = fsub double %538, 5.000000e-01
%540 = fmul double %536, %539
%541 = load i64, i64* %9
%542 = uitofp i64 %541 to double
%543 = fadd double %542, 4.000000e+00
%544 = fdiv double %540, %543
%545 = fadd double 1.000000e+00, %544
%546 = fdiv double 1.000000e+00, %545
%547 = fadd double %529, %546
store double %547, double* %14
%548 = load double, double* %14
%549 = load i64, i64* %3
%550 = uitofp i64 %549 to double
%551 = fsub double %550, 5.000000e-01
%552 = load i64, i64* %9
%553 = uitofp i64 %552 to double
%554 = fadd double %553, 5.000000e+00
%555 = fdiv double %551, %554
%556 = load i64, i64* %3
%557 = uitofp i64 %556 to double
%558 = fsub double %557, 5.000000e-01
%559 = fmul double %555, %558
%560 = load i64, i64* %9
%561 = uitofp i64 %560 to double
%562 = fadd double %561, 5.000000e+00
%563 = fdiv double %559, %562
%564 = fadd double 1.000000e+00, %563
%565 = fdiv double 1.000000e+00, %564
%566 = fadd double %548, %565
store double %566, double* %14
%567 = load double, double* %14
%568 = load i64, i64* %3
%569 = uitofp i64 %568 to double
%570 = fsub double %569, 5.000000e-01
%571 = load i64, i64* %9
%572 = uitofp i64 %571 to double
%573 = fadd double %572, 6.000000e+00
%574 = fdiv double %570, %573
%575 = load i64, i64* %3
%576 = uitofp i64 %575 to double
%577 = fsub double %576, 5.000000e-01
%578 = fmul double %574, %577
%579 = load i64, i64* %9
%580 = uitofp i64 %579 to double
%581 = fadd double %580, 6.000000e+00
%582 = fdiv double %578, %581
%583 = fadd double 1.000000e+00, %582
%584 = fdiv double 1.000000e+00, %583
%585 = fadd double %567, %584
store double %585, double* %14
%586 = load double, double* %14
%587 = load i64, i64* %3
%588 = uitofp i64 %587 to double
%589 = fsub double %588, 5.000000e-01
%590 = load i64, i64* %9
%591 = uitofp i64 %590 to double
%592 = fadd double %591, 7.000000e+00
%593 = fdiv double %589, %592
%594 = load i64, i64* %3
%595 = uitofp i64 %594 to double
%596 = fsub double %595, 5.000000e-01
%597 = fmul double %593, %596
%598 = load i64, i64* %9
%599 = uitofp i64 %598 to double
%600 = fadd double %599, 7.000000e+00
%601 = fdiv double %597, %600
%602 = fadd double 1.000000e+00, %601
%603 = fdiv double 1.000000e+00, %602
%604 = fadd double %586, %603
store double %604, double* %14
%605 = load double, double* %14
%606 = load i64, i64* %3
%607 = uitofp i64 %606 to double
%608 = fsub double %607, 5.000000e-01
%609 = load i64, i64* %9
%610 = uitofp i64 %609 to double
%611 = fadd double %610, 8.000000e+00
%612 = fdiv double %608, %611
%613 = load i64, i64* %3
%614 = uitofp i64 %613 to double
%615 = fsub double %614, 5.000000e-01
%616 = fmul double %612, %615
%617 = load i64, i64* %9
%618 = uitofp i64 %617 to double
%619 = fadd double %618, 8.000000e+00
%620 = fdiv double %616, %619
%621 = fadd double 1.000000e+00, %620
%622 = fdiv double 1.000000e+00, %621
%623 = fadd double %605, %622
store double %623, double* %14
%624 = load double, double* %14
%625 = load i64, i64* %3
%626 = uitofp i64 %625 to double
%627 = fsub double %626, 5.000000e-01
%628 = load i64, i64* %9
%629 = uitofp i64 %628 to double
%630 = fadd double %629, 9.000000e+00
%631 = fdiv double %627, %630
%632 = load i64, i64* %3
%633 = uitofp i64 %632 to double
%634 = fsub double %633, 5.000000e-01
%635 = fmul double %631, %634
%636 = load i64, i64* %9
%637 = uitofp i64 %636 to double
%638 = fadd double %637, 9.000000e+00
%639 = fdiv double %635, %638
%640 = fadd double 1.000000e+00, %639
%641 = fdiv double 1.000000e+00, %640
%642 = fadd double %624, %641
store double %642, double* %14
br label %834
643: ; preds = %448
%644 = load i32, i32* %16
%645 = add nsw i32 %644, 1
store i32 %645, i32* %16
%646 = load double, double* %14
%647 = load i64, i64* %3
%648 = uitofp i64 %647 to double
%649 = fsub double %648, 5.000000e-01
%650 = load i64, i64* %9
%651 = uitofp i64 %650 to double
%652 = fdiv double %649, %651
%653 = load i64, i64* %3
%654 = uitofp i64 %653 to double
%655 = fsub double %654, 5.000000e-01
%656 = fmul double %652, %655
%657 = load i64, i64* %9
%658 = uitofp i64 %657 to double
%659 = fdiv double %656, %658
%660 = fadd double 1.000000e+00, %659
%661 = fdiv double 1.000000e+00, %660
%662 = fadd double %646, %661
store double %662, double* %14
%663 = load double, double* %14
%664 = load i64, i64* %3
%665 = uitofp i64 %664 to double
%666 = fsub double %665, 5.000000e-01
%667 = load i64, i64* %9
%668 = uitofp i64 %667 to double
%669 = fadd double %668, 1.000000e+00
%670 = fdiv double %666, %669
%671 = load i64, i64* %3
%672 = uitofp i64 %671 to double
%673 = fsub double %672, 5.000000e-01
%674 = fmul double %670, %673
%675 = load i64, i64* %9
%676 = uitofp i64 %675 to double
%677 = fadd double %676, 1.000000e+00
%678 = fdiv double %674, %677
%679 = fadd double 1.000000e+00, %678
%680 = fdiv double 1.000000e+00, %679
%681 = fadd double %663, %680
store double %681, double* %14
%682 = load double, double* %14
%683 = load i64, i64* %3
%684 = uitofp i64 %683 to double
%685 = fsub double %684, 5.000000e-01
%686 = load i64, i64* %9
%687 = uitofp i64 %686 to double
%688 = fadd double %687, 2.000000e+00
%689 = fdiv double %685, %688
%690 = load i64, i64* %3
%691 = uitofp i64 %690 to double
%692 = fsub double %691, 5.000000e-01
%693 = fmul double %689, %692
%694 = load i64, i64* %9
%695 = uitofp i64 %694 to double
%696 = fadd double %695, 2.000000e+00
%697 = fdiv double %693, %696
%698 = fadd double 1.000000e+00, %697
%699 = fdiv double 1.000000e+00, %698
%700 = fadd double %682, %699
store double %700, double* %14
%701 = load double, double* %14
%702 = load i64, i64* %3
%703 = uitofp i64 %702 to double
%704 = fsub double %703, 5.000000e-01
%705 = load i64, i64* %9
%706 = uitofp i64 %705 to double
%707 = fadd double %706, 3.000000e+00
%708 = fdiv double %704, %707
%709 = load i64, i64* %3
%710 = uitofp i64 %709 to double
%711 = fsub double %710, 5.000000e-01
%712 = fmul double %708, %711
%713 = load i64, i64* %9
%714 = uitofp i64 %713 to double
%715 = fadd double %714, 3.000000e+00
%716 = fdiv double %712, %715
%717 = fadd double 1.000000e+00, %716
%718 = fdiv double 1.000000e+00, %717
%719 = fadd double %701, %718
store double %719, double* %14
%720 = load double, double* %14
%721 = load i64, i64* %3
%722 = uitofp i64 %721 to double
%723 = fsub double %722, 5.000000e-01
%724 = load i64, i64* %9
%725 = uitofp i64 %724 to double
%726 = fadd double %725, 4.000000e+00
%727 = fdiv double %723, %726
%728 = load i64, i64* %3
%729 = uitofp i64 %728 to double
%730 = fsub double %729, 5.000000e-01
%731 = fmul double %727, %730
%732 = load i64, i64* %9
%733 = uitofp i64 %732 to double
%734 = fadd double %733, 4.000000e+00
%735 = fdiv double %731, %734
%736 = fadd double 1.000000e+00, %735
%737 = fdiv double 1.000000e+00, %736
%738 = fadd double %720, %737
store double %738, double* %14
%739 = load double, double* %14
%740 = load i64, i64* %3
%741 = uitofp i64 %740 to double
%742 = fsub double %741, 5.000000e-01
%743 = load i64, i64* %9
%744 = uitofp i64 %743 to double
%745 = fadd double %744, 5.000000e+00
%746 = fdiv double %742, %745
%747 = load i64, i64* %3
%748 = uitofp i64 %747 to double
%749 = fsub double %748, 5.000000e-01
%750 = fmul double %746, %749
%751 = load i64, i64* %9
%752 = uitofp i64 %751 to double
%753 = fadd double %752, 5.000000e+00
%754 = fdiv double %750, %753
%755 = fadd double 1.000000e+00, %754
%756 = fdiv double 1.000000e+00, %755
%757 = fadd double %739, %756
store double %757, double* %14
%758 = load double, double* %14
%759 = load i64, i64* %3
%760 = uitofp i64 %759 to double
%761 = fsub double %760, 5.000000e-01
%762 = load i64, i64* %9
%763 = uitofp i64 %762 to double
%764 = fadd double %763, 6.000000e+00
%765 = fdiv double %761, %764
%766 = load i64, i64* %3
%767 = uitofp i64 %766 to double
%768 = fsub double %767, 5.000000e-01
%769 = fmul double %765, %768
%770 = load i64, i64* %9
%771 = uitofp i64 %770 to double
%772 = fadd double %771, 6.000000e+00
%773 = fdiv double %769, %772
%774 = fadd double 1.000000e+00, %773
%775 = fdiv double 1.000000e+00, %774
%776 = fadd double %758, %775
store double %776, double* %14
%777 = load double, double* %14
%778 = load i64, i64* %3
%779 = uitofp i64 %778 to double
%780 = fsub double %779, 5.000000e-01
%781 = load i64, i64* %9
%782 = uitofp i64 %781 to double
%783 = fadd double %782, 7.000000e+00
%784 = fdiv double %780, %783
%785 = load i64, i64* %3
%786 = uitofp i64 %785 to double
%787 = fsub double %786, 5.000000e-01
%788 = fmul double %784, %787
%789 = load i64, i64* %9
%790 = uitofp i64 %789 to double
%791 = fadd double %790, 7.000000e+00
%792 = fdiv double %788, %791
%793 = fadd double 1.000000e+00, %792
%794 = fdiv double 1.000000e+00, %793
%795 = fadd double %777, %794
store double %795, double* %14
%796 = load double, double* %14
%797 = load i64, i64* %3
%798 = uitofp i64 %797 to double
%799 = fsub double %798, 5.000000e-01
%800 = load i64, i64* %9
%801 = uitofp i64 %800 to double
%802 = fadd double %801, 8.000000e+00
%803 = fdiv double %799, %802
%804 = load i64, i64* %3
%805 = uitofp i64 %804 to double
%806 = fsub double %805, 5.000000e-01
%807 = fmul double %803, %806
%808 = load i64, i64* %9
%809 = uitofp i64 %808 to double
%810 = fadd double %809, 8.000000e+00
%811 = fdiv double %807, %810
%812 = fadd double 1.000000e+00, %811
%813 = fdiv double 1.000000e+00, %812
%814 = fadd double %796, %813
store double %814, double* %14
%815 = load double, double* %14
%816 = load i64, i64* %3
%817 = uitofp i64 %816 to double
%818 = fsub double %817, 5.000000e-01
%819 = load i64, i64* %9
%820 = uitofp i64 %819 to double
%821 = fadd double %820, 9.000000e+00
%822 = fdiv double %818, %821
%823 = load i64, i64* %3
%824 = uitofp i64 %823 to double
%825 = fsub double %824, 5.000000e-01
%826 = fmul double %822, %825
%827 = load i64, i64* %9
%828 = uitofp i64 %827 to double
%829 = fadd double %828, 9.000000e+00
%830 = fdiv double %826, %829
%831 = fadd double 1.000000e+00, %830
%832 = fdiv double 1.000000e+00, %831
%833 = fadd double %815, %832
store double %833, double* %14
br label %834
834: ; preds = %643, %452
br label %835
835: ; preds = %834
%836 = load i64, i64* %3
%837 = add i64 %836, 10
store i64 %837, i64* %3
br label %444
838: ; preds = %444
%839 = load double, double* %14
store double %839, double* %7
%840 = load i32, i32* %15
%841 = sext i32 %840 to i64
store i64 %841, i64* %4
%842 = load i32, i32* %16
%843 = sext i32 %842 to i64
store i64 %843, i64* %5
%844 = load i32, i32* @CLOCK_MONOTONIC
%845 = call i32 @clock_gettime(i32 %844, %struct.timespec* %11)
%846 = getelementptr inbounds %struct.timespec, %struct.timespec* %10, i32 0, i32 0
%847 = load i32, i32* %846
%848 = getelementptr inbounds %struct.timespec, %struct.timespec* %11, i32 0, i32 0
%849 = load i32, i32* %848
%850 = call i32 @elapsed_time_hr(i32 %847, i32 %849, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0))
%851 = load double, double* %7
%852 = fmul double %851, 4.000000e+00
%853 = load i64, i64* %9
%854 = uitofp i64 %853 to double
%855 = fdiv double %852, %854
store double %855, double* %7
%856 = call double @atan(double 1.000000e+00)
%857 = fmul double 4.000000e+00, %856
store double %857, double* %8
%858 = load double, double* %7
%859 = fptoui double %858 to i64
%860 = load double, double* %7
%861 = load double, double* %8
%862 = fsub double %860, %861
%863 = fmul double 1.000000e+02, %862
%864 = load double, double* %8
%865 = fdiv double %863, %864
%866 = call double @llvm.fabs.f64(double %865)
%867 = call i32 (i8*, i64, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.1, i64 0, i64 0), i64 %859, double %866)
%868 = load i64, i64* %6
%869 = call i32 (i8*, i64, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3, i64 0, i64 0), i64 %868)
%870 = load i64, i64* %4
%871 = call i32 (i8*, i64, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.4, i64 0, i64 0), i64 %870)
%872 = load i64, i64* %5
%873 = call i32 (i8*, i64, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.5, i64 0, i64 0), i64 %872)
ret i32 0
}

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