#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
double acos(double);
scalar_t__ acosf(float);
double asin(double);
scalar_t__ asinf(float);
double atan(double);
double atan2(double, double);
scalar_t__ atan2f(float, double);
scalar_t__ atanf(float);
double ceil(double);
scalar_t__ ceilf(float);
double cos(double);
scalar_t__ cosf(float);
double exp(double);
scalar_t__ expf(float);
double floor(double);
scalar_t__ floorf(float);
double log(double);
double log10(double);
scalar_t__ log10f(float);
scalar_t__ logf(float);
int /*<<< orphan*/ printf(char *, double, double);
double sin(double);
scalar_t__ sinf(float);
double sqrt(double);
scalar_t__ sqrtf(float);
double tan(double);
scalar_t__ tanf(float);
int main(void) {
  double d;
  float f;
  int i;
  const double tinyD = 0.0000000001;
  const double tinyF = 0.0001;
  d = -2.0;
  for (i = 0; i < 41; i++) {
    printf("floorD(%+20.13e) = %+20.13e\n", d, floor(d));
    d += 0.1 - tinyD;
  }
  f = -2.0;
  for (i = 0; i < 41; i++) {
    printf("floorF(%+20.4e) = %+20.4e\n", (double)f, (double)floorf(f));
    f += 0.1 - tinyF;
  }
  d = -2.0;
  for (i = 0; i < 41; i++) {
    printf(" ceilD(%+20.13e) = %+20.13e\n", d, ceil(d));
    d += 0.1 - tinyD;
  }
  f = -2.0;
  for (i = 0; i < 41; i++) {
    printf(" ceilF(%+20.4e) = %+20.4e\n", (double)f, (double)ceilf(f));
    f += 0.1 - tinyF;
  }
  d = -2.0;
  for (i = 0; i < 41; i++) {
    printf("  sinD(%+20.13e) = %+20.13e\n", d, sin(d));
    d += 0.1 - tinyD;
  }
  f = -2.0;
  for (i = 0; i < 41; i++) {
    printf("  sinF(%+20.4e) = %+20.4e\n", (double)f, (double)sinf(f));
    f += 0.1 - tinyF;
  }
  d = -2.0;
  for (i = 0; i < 41; i++) {
    printf("  cosD(%+20.13e) = %+20.13e\n", d, cos(d));
    d += 0.1 - tinyD;
  }
  f = -2.0;
  for (i = 0; i < 41; i++) {
    printf("  cosF(%+20.4e) = %+20.4e\n", (double)f, (double)cosf(f));
    f += 0.1 - tinyF;
  }
  d = -2.0;
  for (i = 0; i < 41; i++) {
    printf("  tanD(%+20.13e) = %+20.13e\n", d, tan(d));
    d += 0.1 - tinyD;
  }
  f = -2.0;
  for (i = 0; i < 41; i++) {
    printf("  tanF(%+20.4e) = %+20.4e\n", (double)f, (double)tanf(f));
    f += 0.1 - tinyF;
  }
  d = -2.0;
  for (i = 0; i < 41; i++) {
    printf("  expD(%+20.13e) = %+20.13e\n", d, exp(d));
    d += 0.1 - tinyD;
  }
  f = -2.0;
  for (i = 0; i < 41; i++) {
    printf("  expF(%+20.4e) = %+20.4e\n", (double)f, (double)expf(f));
    f += 0.1 - tinyF;
  }
  d = 0.0;
  for (i = 0; i < 21; i++) {
    printf(" sqrtD(%+20.13e) = %+20.13e\n", d, sqrt(d));
    d += 0.1 - tinyD;
  }
  f = 0.0;
  for (i = 0; i < 21; i++) {
    printf(" sqrtF(%+20.4e) = %+20.4e\n", (double)f, (double)sqrtf(f));
    f += 0.1 - tinyF;
  }
  d = 0.0;
  for (i = 0; i < 21; i++) {
    printf("  logD(%+20.13e) = %+20.13e\n", d, log(d));
    d += 0.1 - tinyD;
  }
  f = 0.0;
  for (i = 0; i < 21; i++) {
    printf("  logF(%+20.4e) = %+20.4e\n", (double)f, (double)logf(f));
    f += 0.1 - tinyF;
  }
  d = 0.0;
  for (i = 0; i < 21; i++) {
    printf("log10D(%+20.13e) = %+20.13e\n", d, log10(d));
    d += 0.1 - tinyD;
  }
  f = 0.0;
  for (i = 0; i < 21; i++) {
    printf("log10F(%+20.4e) = %+20.4e\n", (double)f, (double)log10f(f));
    f += 0.1 - tinyF;
  }
  d = -1.0;
  for (i = 0; i < 21; i++) {
    printf(" asinD(%+20.13e) = %+20.13e\n", d, asin(d));
    d += 0.1 - tinyD;
  }
  f = -1.0;
  for (i = 0; i < 21; i++) {
    printf(" asinF(%+20.4e) = %+20.4e\n", (double)f, (double)asinf(f));
    f += 0.1 - tinyF;
  }
  d = -1.0;
  for (i = 0; i < 21; i++) {
    printf(" acosD(%+20.13e) = %+20.10e\n", d, acos(d));
    d += 0.1 - 1000.0 * tinyD;
  }
  f = -1.0;
  for (i = 0; i < 21; i++) {
    printf(" acosF(%+20.4e) = %+20.4e\n", (double)f, (double)acosf(f));
    f += 0.1 - tinyF;
  }
  d = -1.0;
  for (i = 0; i < 21; i++) {
    printf(" atanD(%+20.13e) = %+20.13e\n", d, atan(d));
    d += 0.1 - tinyD;
  }
  f = -1.0;
  for (i = 0; i < 21; i++) {
    printf(" atanF(%+20.4e) = %+20.4e\n", (double)f, (double)atanf(f));
    f += 0.1 - tinyF;
  }
  d = -1.0;
  for (i = 0; i < 21; i++) {
    printf("atan2D(%+20.13e) = %+20.13e\n", d, atan2(d, 1.0));
    d += 0.1 - tinyD;
  }
  f = -1.0;
  for (i = 0; i < 21; i++) {
    printf("atan2F(%+20.4e) = %+20.4e\n", (double)f, (double)atan2f(f, 1.0));
    f += 0.1 - tinyF;
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x100,%rsp
movl   $0x0,-0x4(%rbp)
movsd  0xd46(%rip),%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  0xd31(%rip),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xd1c(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x29,-0x18(%rbp)
jge    1342 <main+0x92>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x10(%rbp),%xmm0
call   11d0 <floor@plt>
movaps %xmm0,%xmm1
movsd  -0x30(%rbp),%xmm0
lea    0xd2b(%rip),%rdi
call   10a0 <printf@plt>
movsd  0xd06(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    12f0 <main+0x40>
movss  0xcf6(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x29,-0x18(%rbp)
jge    13ba <main+0x10a>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x38(%rbp)
movss  -0x14(%rbp),%xmm0
call   10e0 <floorf@plt>
movsd  -0x38(%rbp),%xmm0
cvtsi2sd %rax,%xmm1
lea    0xcdc(%rip),%rdi
call   10a0 <printf@plt>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xc81(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1356 <main+0xa6>
movsd  0xc3e(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x29,-0x18(%rbp)
jge    1420 <main+0x170>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x10(%rbp),%xmm0
call   1050 <ceil@plt>
movaps %xmm0,%xmm1
movsd  -0x40(%rbp),%xmm0
lea    0xc85(%rip),%rdi
call   10a0 <printf@plt>
movsd  0xc28(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    13ce <main+0x11e>
movss  0xc18(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x29,-0x18(%rbp)
jge    1498 <main+0x1e8>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x48(%rbp)
movss  -0x14(%rbp),%xmm0
call   1140 <ceilf@plt>
movsd  -0x48(%rbp),%xmm0
cvtsi2sd %rax,%xmm1
lea    0xc36(%rip),%rdi
call   10a0 <printf@plt>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xba3(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1434 <main+0x184>
movsd  0xb60(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x29,-0x18(%rbp)
jge    14fe <main+0x24e>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x10(%rbp),%xmm0
call   10f0 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x50(%rbp),%xmm0
lea    0xbdf(%rip),%rdi
call   10a0 <printf@plt>
movsd  0xb4a(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    14ac <main+0x1fc>
movss  0xb3a(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x29,-0x18(%rbp)
jge    1576 <main+0x2c6>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x58(%rbp)
movss  -0x14(%rbp),%xmm0
call   1030 <sinf@plt>
movsd  -0x58(%rbp),%xmm0
cvtsi2sd %rax,%xmm1
lea    0xb90(%rip),%rdi
call   10a0 <printf@plt>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xac5(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1512 <main+0x262>
movsd  0xa82(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x29,-0x18(%rbp)
jge    15dc <main+0x32c>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x10(%rbp),%xmm0
call   1160 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x60(%rbp),%xmm0
lea    0xb39(%rip),%rdi
call   10a0 <printf@plt>
movsd  0xa6c(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    158a <main+0x2da>
movss  0xa5c(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x29,-0x18(%rbp)
jge    1654 <main+0x3a4>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x68(%rbp)
movss  -0x14(%rbp),%xmm0
call   1090 <cosf@plt>
movsd  -0x68(%rbp),%xmm0
cvtsi2sd %rax,%xmm1
lea    0xaea(%rip),%rdi
call   10a0 <printf@plt>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x9e7(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    15f0 <main+0x340>
movsd  0x9a4(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x29,-0x18(%rbp)
jge    16ba <main+0x40a>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x10(%rbp),%xmm0
call   1150 <tan@plt>
movaps %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
lea    0xa93(%rip),%rdi
call   10a0 <printf@plt>
movsd  0x98e(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1668 <main+0x3b8>
movss  0x97e(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x29,-0x18(%rbp)
jge    1732 <main+0x482>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x78(%rbp)
movss  -0x14(%rbp),%xmm0
call   1070 <tanf@plt>
movsd  -0x78(%rbp),%xmm0
cvtsi2sd %rax,%xmm1
lea    0xa44(%rip),%rdi
call   10a0 <printf@plt>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x909(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    16ce <main+0x41e>
movsd  0x8c6(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x29,-0x18(%rbp)
jge    1798 <main+0x4e8>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x10(%rbp),%xmm0
call   1120 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x80(%rbp),%xmm0
lea    0x9ed(%rip),%rdi
call   10a0 <printf@plt>
movsd  0x8b0(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1746 <main+0x496>
movss  0x8a0(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x29,-0x18(%rbp)
jge    1816 <main+0x566>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movss  -0x14(%rbp),%xmm0
call   10c0 <expf@plt>
movsd  -0x88(%rbp),%xmm0
ff
cvtsi2sd %rax,%xmm1
lea    0x998(%rip),%rdi
call   10a0 <printf@plt>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x825(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    17ac <main+0x4fc>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    187d <main+0x5cd>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
call   11a0 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x90(%rbp),%xmm0
ff
lea    0x940(%rip),%rdi
call   10a0 <printf@plt>
movsd  0x7cb(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1825 <main+0x575>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    18f6 <main+0x646>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movss  -0x14(%rbp),%xmm0
call   1130 <sqrtf@plt>
movsd  -0x98(%rbp),%xmm0
ff
cvtsi2sd %rax,%xmm1
lea    0x8f0(%rip),%rdi
call   10a0 <printf@plt>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x745(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    188c <main+0x5dc>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    195d <main+0x6ad>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
call   1170 <log@plt>
movaps %xmm0,%xmm1
movsd  -0xa0(%rbp),%xmm0
ff
lea    0x898(%rip),%rdi
call   10a0 <printf@plt>
movsd  0x6eb(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1905 <main+0x655>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    19d6 <main+0x726>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movss  -0x14(%rbp),%xmm0
call   1040 <logf@plt>
movsd  -0xa8(%rbp),%xmm0
ff
cvtsi2sd %rax,%xmm1
lea    0x848(%rip),%rdi
call   10a0 <printf@plt>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x665(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    196c <main+0x6bc>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    1a3d <main+0x78d>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
call   1190 <log10@plt>
movaps %xmm0,%xmm1
movsd  -0xb0(%rbp),%xmm0
ff
lea    0x7f0(%rip),%rdi
call   10a0 <printf@plt>
movsd  0x60b(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    19e5 <main+0x735>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    1ab6 <main+0x806>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movss  -0x14(%rbp),%xmm0
call   1180 <log10f@plt>
movsd  -0xb8(%rbp),%xmm0
ff
cvtsi2sd %rax,%xmm1
lea    0x7a0(%rip),%rdi
call   10a0 <printf@plt>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x585(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1a4c <main+0x79c>
movsd  0x55a(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    1b22 <main+0x872>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
call   1110 <asin@plt>
movaps %xmm0,%xmm1
movsd  -0xc0(%rbp),%xmm0
ff
lea    0x743(%rip),%rdi
call   10a0 <printf@plt>
movsd  0x526(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1aca <main+0x81a>
movss  0x51a(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    1ba0 <main+0x8f0>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movss  -0x14(%rbp),%xmm0
call   11b0 <asinf@plt>
movsd  -0xc8(%rbp),%xmm0
ff
cvtsi2sd %rax,%xmm1
lea    0x6ee(%rip),%rdi
call   10a0 <printf@plt>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x49b(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1b36 <main+0x886>
movsd  0x470(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    1c0c <main+0x95c>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
call   10d0 <acos@plt>
movaps %xmm0,%xmm1
movsd  -0xd0(%rbp),%xmm0
ff
lea    0x691(%rip),%rdi
call   10a0 <printf@plt>
movsd  0x444(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1bb4 <main+0x904>
movss  0x430(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    1c8a <main+0x9da>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movss  -0x14(%rbp),%xmm0
call   10b0 <acosf@plt>
movsd  -0xd8(%rbp),%xmm0
ff
cvtsi2sd %rax,%xmm1
lea    0x63c(%rip),%rdi
call   10a0 <printf@plt>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x3b1(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1c20 <main+0x970>
movsd  0x386(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    1cf6 <main+0xa46>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
call   1100 <atan@plt>
movaps %xmm0,%xmm1
movsd  -0xe0(%rbp),%xmm0
ff
lea    0x5df(%rip),%rdi
call   10a0 <printf@plt>
movsd  0x352(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1c9e <main+0x9ee>
movss  0x346(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    1d74 <main+0xac4>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movss  -0x14(%rbp),%xmm0
call   1080 <atanf@plt>
movsd  -0xe8(%rbp),%xmm0
ff
cvtsi2sd %rax,%xmm1
lea    0x58a(%rip),%rdi
call   10a0 <printf@plt>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x2c7(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1d0a <main+0xa5a>
movsd  0x29c(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    1de8 <main+0xb38>
movsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0x27c(%rip),%xmm1
call   1060 <atan2@plt>
movaps %xmm0,%xmm1
movsd  -0xf0(%rbp),%xmm0
ff
lea    0x525(%rip),%rdi
call   10a0 <printf@plt>
movsd  0x260(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1d88 <main+0xad8>
movss  0x254(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movl   $0x0,-0x18(%rbp)
cmpl   $0x15,-0x18(%rbp)
jge    1e6e <main+0xbbe>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movss  -0x14(%rbp),%xmm0
movsd  0x204(%rip),%xmm1
call   11c0 <atan2f@plt>
movsd  -0xf8(%rbp),%xmm0
ff
cvtsi2sd %rax,%xmm1
lea    0x4c8(%rip),%rdi
call   10a0 <printf@plt>
movss  -0x14(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x1cd(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1dfc <main+0xb4c>
xor    %eax,%eax
add    $0x100,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %rbx
push   %rax
movsd  0xd55(%rip),%xmm0
mov    $0x29,%ebp
lea    0xeb9(%rip),%rbx
nopw   0x0(%rax,%rax,1)
movsd  %xmm0,(%rsp)
movsd  (%rsp),%xmm0
call   11c0 <floor@plt>
movapd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0xd1b(%rip),%xmm0
add    $0xffffffff,%ebp
jne    12c0 <main+0x20>
movss  0xe6e(%rip),%xmm0
mov    $0x29,%ebp
lea    0xe87(%rip),%rbx
cs nopw 0x0(%rax,%rax,1)
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  %xmm1,(%rsp)
call   10e0 <floorf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0xccd(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0xffffffff,%ebp
jne    1310 <main+0x70>
movsd  0xcac(%rip),%xmm1
mov    $0x29,%ebp
lea    0xe48(%rip),%rbx
movsd  %xmm1,(%rsp)
movapd %xmm1,%xmm0
call   1050 <ceil@plt>
movapd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm1
addsd  0xc7c(%rip),%xmm1
add    $0xffffffff,%ebp
jne    1360 <main+0xc0>
movss  0xdcf(%rip),%xmm0
mov    $0x29,%ebp
lea    0xe20(%rip),%rbx
cs nopw 0x0(%rax,%rax,1)
nop
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  %xmm1,(%rsp)
call   1140 <ceilf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0xc2d(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0xffffffff,%ebp
jne    13b0 <main+0x110>
movsd  0xc0c(%rip),%xmm1
mov    $0x29,%ebp
lea    0xde0(%rip),%rbx
movsd  %xmm1,(%rsp)
movapd %xmm1,%xmm0
call   10f0 <sin@plt>
movapd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm1
addsd  0xbdc(%rip),%xmm1
add    $0xffffffff,%ebp
jne    1400 <main+0x160>
movss  0xd2f(%rip),%xmm0
mov    $0x29,%ebp
lea    0xdb8(%rip),%rbx
cs nopw 0x0(%rax,%rax,1)
nop
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  %xmm1,(%rsp)
call   1030 <sinf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0xb8d(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0xffffffff,%ebp
jne    1450 <main+0x1b0>
movsd  0xb6c(%rip),%xmm1
mov    $0x29,%ebp
lea    0xd78(%rip),%rbx
movsd  %xmm1,(%rsp)
movapd %xmm1,%xmm0
call   1160 <cos@plt>
movapd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm1
addsd  0xb3c(%rip),%xmm1
add    $0xffffffff,%ebp
jne    14a0 <main+0x200>
movss  0xc8f(%rip),%xmm0
mov    $0x29,%ebp
lea    0xd50(%rip),%rbx
cs nopw 0x0(%rax,%rax,1)
nop
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  %xmm1,(%rsp)
call   1090 <cosf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0xaed(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0xffffffff,%ebp
jne    14f0 <main+0x250>
movsd  0xacc(%rip),%xmm1
mov    $0x29,%ebp
lea    0xd10(%rip),%rbx
movsd  %xmm1,(%rsp)
movapd %xmm1,%xmm0
call   1150 <tan@plt>
movapd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm1
addsd  0xa9c(%rip),%xmm1
add    $0xffffffff,%ebp
jne    1540 <main+0x2a0>
movss  0xbef(%rip),%xmm0
mov    $0x29,%ebp
lea    0xce8(%rip),%rbx
cs nopw 0x0(%rax,%rax,1)
nop
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  %xmm1,(%rsp)
call   1070 <tanf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0xa4d(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0xffffffff,%ebp
jne    1590 <main+0x2f0>
movsd  0xa2c(%rip),%xmm1
mov    $0x29,%ebp
lea    0xca8(%rip),%rbx
movsd  %xmm1,(%rsp)
movapd %xmm1,%xmm0
call   1120 <exp@plt>
movapd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm1
addsd  0x9fc(%rip),%xmm1
add    $0xffffffff,%ebp
jne    15e0 <main+0x340>
movss  0xb4f(%rip),%xmm0
mov    $0x29,%ebp
lea    0xc80(%rip),%rbx
cs nopw 0x0(%rax,%rax,1)
nop
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  %xmm1,(%rsp)
call   10c0 <expf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0x9ad(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0xffffffff,%ebp
jne    1630 <main+0x390>
lea    0xc4d(%rip),%rbx
xorps  %xmm0,%xmm0
xorpd  %xmm1,%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x97e(%rip),%xmm0
movsd  0x986(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x97e(%rip),%xmm0
movsd  0x97e(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x976(%rip),%xmm0
movsd  0x976(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x96e(%rip),%xmm0
movsd  0x96e(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x966(%rip),%xmm0
movsd  0x966(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x95e(%rip),%xmm0
movsd  0x95e(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x956(%rip),%xmm0
movsd  0x956(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x94e(%rip),%xmm0
movsd  0x94e(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x946(%rip),%xmm0
movsd  0x946(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x93e(%rip),%xmm0
movsd  0x93e(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x936(%rip),%xmm0
movsd  0x936(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x92e(%rip),%xmm0
movsd  0x92e(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x926(%rip),%xmm0
movsd  0x926(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x91e(%rip),%xmm0
movsd  0x91e(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x916(%rip),%xmm0
movsd  0x916(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x90e(%rip),%xmm0
movsd  0x90e(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x906(%rip),%xmm0
movsd  0x906(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x8fe(%rip),%xmm0
movsd  0x8fe(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x8f6(%rip),%xmm0
movsd  0x8f6(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
movsd  0x8ee(%rip),%xmm0
movsd  0x8ee(%rip),%xmm1
mov    %rbx,%rdi
call   10a0 <printf@plt>
xorps  %xmm0,%xmm0
mov    $0x15,%ebp
lea    0xa6c(%rip),%rbx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  %xmm1,(%rsp)
call   1130 <sqrtf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0x75d(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0xffffffff,%ebp
jne    1880 <main+0x5e0>
xorpd  %xmm1,%xmm1
mov    $0x15,%ebp
lea    0xa2c(%rip),%rbx
nopl   0x0(%rax)
movsd  %xmm1,(%rsp)
movapd %xmm1,%xmm0
call   1170 <log@plt>
movapd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm1
addsd  0x70c(%rip),%xmm1
add    $0xffffffff,%ebp
jne    18d0 <main+0x630>
xorps  %xmm0,%xmm0
mov    $0x15,%ebp
lea    0xa05(%rip),%rbx
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  %xmm1,(%rsp)
call   1040 <logf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0x6cd(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0xffffffff,%ebp
jne    1910 <main+0x670>
xorpd  %xmm1,%xmm1
mov    $0x15,%ebp
lea    0x9d4(%rip),%rbx
nopl   0x0(%rax)
movsd  %xmm1,(%rsp)
movapd %xmm1,%xmm0
call   1190 <log10@plt>
movapd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm1
addsd  0x67c(%rip),%xmm1
add    $0xffffffff,%ebp
jne    1960 <main+0x6c0>
xorps  %xmm0,%xmm0
mov    $0x15,%ebp
lea    0x9ad(%rip),%rbx
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  %xmm1,(%rsp)
call   1180 <log10f@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0x63d(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0xffffffff,%ebp
jne    19a0 <main+0x700>
movsd  0x76c(%rip),%xmm1
mov    $0x15,%ebp
lea    0x978(%rip),%rbx
movsd  %xmm1,(%rsp)
movapd %xmm1,%xmm0
call   1110 <asin@plt>
movapd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm1
addsd  0x5ec(%rip),%xmm1
add    $0xffffffff,%ebp
jne    19f0 <main+0x750>
movss  0x743(%rip),%xmm0
mov    $0x15,%ebp
lea    0x950(%rip),%rbx
cs nopw 0x0(%rax,%rax,1)
nop
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  %xmm1,(%rsp)
call   11a0 <asinf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0x59d(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0xffffffff,%ebp
jne    1a40 <main+0x7a0>
movsd  0x6cc(%rip),%xmm0
mov    $0x15,%ebp
lea    0x910(%rip),%rbx
movsd  %xmm0,(%rsp)
movsd  (%rsp),%xmm0
call   10d0 <acos@plt>
movapd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0x69b(%rip),%xmm0
add    $0xffffffff,%ebp
jne    1a90 <main+0x7f0>
movss  0x6a2(%rip),%xmm0
mov    $0x15,%ebp
lea    0x8e7(%rip),%rbx
cs nopw 0x0(%rax,%rax,1)
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  %xmm1,(%rsp)
call   10b0 <acosf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0x4fd(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0xffffffff,%ebp
jne    1ae0 <main+0x840>
movsd  0x62c(%rip),%xmm1
mov    $0x15,%ebp
lea    0x8a8(%rip),%rbx
movsd  %xmm1,(%rsp)
movapd %xmm1,%xmm0
call   1100 <atan@plt>
movapd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm1
addsd  0x4ac(%rip),%xmm1
add    $0xffffffff,%ebp
jne    1b30 <main+0x890>
movss  0x603(%rip),%xmm0
mov    $0x15,%ebp
lea    0x880(%rip),%rbx
cs nopw 0x0(%rax,%rax,1)
nop
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  %xmm1,(%rsp)
call   1080 <atanf@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0x45d(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0xffffffff,%ebp
jne    1b80 <main+0x8e0>
movsd  0x58c(%rip),%xmm1
mov    $0x15,%ebp
lea    0x840(%rip),%rbx
movsd  %xmm1,(%rsp)
movapd %xmm1,%xmm0
movsd  0x57f(%rip),%xmm1
call   1060 <atan2@plt>
movapd %xmm0,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm1
addsd  0x404(%rip),%xmm1
add    $0xffffffff,%ebp
jne    1bd0 <main+0x930>
movss  0x55b(%rip),%xmm0
mov    $0x15,%ebp
lea    0x810(%rip),%rbx
nopl   (%rax)
xorps  %xmm1,%xmm1
cvtss2sd %xmm0,%xmm1
movsd  %xmm1,(%rsp)
movsd  0x52c(%rip),%xmm1
call   11b0 <atan2f@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %rax,%xmm1
mov    %rbx,%rdi
movsd  (%rsp),%xmm0
call   10a0 <printf@plt>
movsd  (%rsp),%xmm0
addsd  0x3b5(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0xffffffff,%ebp
jne    1c20 <main+0x980>
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %rbp
ret

LLVM IR (-O0):
@.str = [29 x i8] c"floorD(%+20.13e) = %+20.13e\0A\00"
@.str.1 = [27 x i8] c"floorF(%+20.4e) = %+20.4e\0A\00"
@.str.2 = [29 x i8] c" ceilD(%+20.13e) = %+20.13e\0A\00"
@.str.3 = [27 x i8] c" ceilF(%+20.4e) = %+20.4e\0A\00"
@.str.4 = [29 x i8] c" sinD(%+20.13e) = %+20.13e\0A\00"
@.str.5 = [27 x i8] c" sinF(%+20.4e) = %+20.4e\0A\00"
@.str.6 = [29 x i8] c" cosD(%+20.13e) = %+20.13e\0A\00"
@.str.7 = [27 x i8] c" cosF(%+20.4e) = %+20.4e\0A\00"
@.str.8 = [29 x i8] c" tanD(%+20.13e) = %+20.13e\0A\00"
@.str.9 = [27 x i8] c" tanF(%+20.4e) = %+20.4e\0A\00"
@.str.10 = [29 x i8] c" expD(%+20.13e) = %+20.13e\0A\00"
@.str.11 = [27 x i8] c" expF(%+20.4e) = %+20.4e\0A\00"
@.str.12 = [29 x i8] c" sqrtD(%+20.13e) = %+20.13e\0A\00"
@.str.13 = [27 x i8] c" sqrtF(%+20.4e) = %+20.4e\0A\00"
@.str.14 = [29 x i8] c" logD(%+20.13e) = %+20.13e\0A\00"
@.str.15 = [27 x i8] c" logF(%+20.4e) = %+20.4e\0A\00"
@.str.16 = [29 x i8] c"log10D(%+20.13e) = %+20.13e\0A\00"
@.str.17 = [27 x i8] c"log10F(%+20.4e) = %+20.4e\0A\00"
@.str.18 = [29 x i8] c" asinD(%+20.13e) = %+20.13e\0A\00"
@.str.19 = [27 x i8] c" asinF(%+20.4e) = %+20.4e\0A\00"
@.str.20 = [29 x i8] c" acosD(%+20.13e) = %+20.10e\0A\00"
@.str.21 = [27 x i8] c" acosF(%+20.4e) = %+20.4e\0A\00"
@.str.22 = [29 x i8] c" atanD(%+20.13e) = %+20.13e\0A\00"
@.str.23 = [27 x i8] c" atanF(%+20.4e) = %+20.4e\0A\00"
@.str.24 = [29 x i8] c"atan2D(%+20.13e) = %+20.13e\0A\00"
@.str.25 = [27 x i8] c"atan2F(%+20.4e) = %+20.4e\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca double
%3 = alloca float
%4 = alloca i32
%5 = alloca double
%6 = alloca double
store i32 0, i32* %1
store double 1.000000e-10, double* %5
store double 1.000000e-04, double* %6
store double -2.000000e+00, double* %2
store i32 0, i32* %4
br label %7
7: ; preds = %17, %0
%8 = load i32, i32* %4
%9 = icmp slt i32 %8, 41
br i1 %9, label %10, label %20
10: ; preds = %7
%11 = load double, double* %2
%12 = load double, double* %2
%13 = call double @llvm.floor.f64(double %12)
%14 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str, i64 0, i64 0), double %11, double %13)
%15 = load double, double* %2
%16 = fadd double %15, 0x3FB99999992BA61B
store double %16, double* %2
br label %17
17: ; preds = %10
%18 = load i32, i32* %4
%19 = add nsw i32 %18, 1
store i32 %19, i32* %4
br label %7
20: ; preds = %7
store float -2.000000e+00, float* %3
store i32 0, i32* %4
br label %21
21: ; preds = %35, %20
%22 = load i32, i32* %4
%23 = icmp slt i32 %22, 41
br i1 %23, label %24, label %38
24: ; preds = %21
%25 = load float, float* %3
%26 = fpext float %25 to double
%27 = load float, float* %3
%28 = call i64 @floorf(float %27)
%29 = sitofp i64 %28 to double
%30 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.1, i64 0, i64 0), double %26, double %29)
%31 = load float, float* %3
%32 = fpext float %31 to double
%33 = fadd double %32, 9.990000e-02
%34 = fptrunc double %33 to float
store float %34, float* %3
br label %35
35: ; preds = %24
%36 = load i32, i32* %4
%37 = add nsw i32 %36, 1
store i32 %37, i32* %4
br label %21
38: ; preds = %21
store double -2.000000e+00, double* %2
store i32 0, i32* %4
br label %39
39: ; preds = %49, %38
%40 = load i32, i32* %4
%41 = icmp slt i32 %40, 41
br i1 %41, label %42, label %52
42: ; preds = %39
%43 = load double, double* %2
%44 = load double, double* %2
%45 = call double @llvm.ceil.f64(double %44)
%46 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.2, i64 0, i64 0), double %43, double %45)
%47 = load double, double* %2
%48 = fadd double %47, 0x3FB99999992BA61B
store double %48, double* %2
br label %49
49: ; preds = %42
%50 = load i32, i32* %4
%51 = add nsw i32 %50, 1
store i32 %51, i32* %4
br label %39
52: ; preds = %39
store float -2.000000e+00, float* %3
store i32 0, i32* %4
br label %53
53: ; preds = %67, %52
%54 = load i32, i32* %4
%55 = icmp slt i32 %54, 41
br i1 %55, label %56, label %70
56: ; preds = %53
%57 = load float, float* %3
%58 = fpext float %57 to double
%59 = load float, float* %3
%60 = call i64 @ceilf(float %59)
%61 = sitofp i64 %60 to double
%62 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.3, i64 0, i64 0), double %58, double %61)
%63 = load float, float* %3
%64 = fpext float %63 to double
%65 = fadd double %64, 9.990000e-02
%66 = fptrunc double %65 to float
store float %66, float* %3
br label %67
67: ; preds = %56
%68 = load i32, i32* %4
%69 = add nsw i32 %68, 1
store i32 %69, i32* %4
br label %53
70: ; preds = %53
store double -2.000000e+00, double* %2
store i32 0, i32* %4
br label %71
71: ; preds = %81, %70
%72 = load i32, i32* %4
%73 = icmp slt i32 %72, 41
br i1 %73, label %74, label %84
74: ; preds = %71
%75 = load double, double* %2
%76 = load double, double* %2
%77 = call double @sin(double %76)
%78 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.4, i64 0, i64 0), double %75, double %77)
%79 = load double, double* %2
%80 = fadd double %79, 0x3FB99999992BA61B
store double %80, double* %2
br label %81
81: ; preds = %74
%82 = load i32, i32* %4
%83 = add nsw i32 %82, 1
store i32 %83, i32* %4
br label %71
84: ; preds = %71
store float -2.000000e+00, float* %3
store i32 0, i32* %4
br label %85
85: ; preds = %99, %84
%86 = load i32, i32* %4
%87 = icmp slt i32 %86, 41
br i1 %87, label %88, label %102
88: ; preds = %85
%89 = load float, float* %3
%90 = fpext float %89 to double
%91 = load float, float* %3
%92 = call i64 @sinf(float %91)
%93 = sitofp i64 %92 to double
%94 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.5, i64 0, i64 0), double %90, double %93)
%95 = load float, float* %3
%96 = fpext float %95 to double
%97 = fadd double %96, 9.990000e-02
%98 = fptrunc double %97 to float
store float %98, float* %3
br label %99
99: ; preds = %88
%100 = load i32, i32* %4
%101 = add nsw i32 %100, 1
store i32 %101, i32* %4
br label %85
102: ; preds = %85
store double -2.000000e+00, double* %2
store i32 0, i32* %4
br label %103
103: ; preds = %113, %102
%104 = load i32, i32* %4
%105 = icmp slt i32 %104, 41
br i1 %105, label %106, label %116
106: ; preds = %103
%107 = load double, double* %2
%108 = load double, double* %2
%109 = call double @cos(double %108)
%110 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.6, i64 0, i64 0), double %107, double %109)
%111 = load double, double* %2
%112 = fadd double %111, 0x3FB99999992BA61B
store double %112, double* %2
br label %113
113: ; preds = %106
%114 = load i32, i32* %4
%115 = add nsw i32 %114, 1
store i32 %115, i32* %4
br label %103
116: ; preds = %103
store float -2.000000e+00, float* %3
store i32 0, i32* %4
br label %117
117: ; preds = %131, %116
%118 = load i32, i32* %4
%119 = icmp slt i32 %118, 41
br i1 %119, label %120, label %134
120: ; preds = %117
%121 = load float, float* %3
%122 = fpext float %121 to double
%123 = load float, float* %3
%124 = call i64 @cosf(float %123)
%125 = sitofp i64 %124 to double
%126 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.7, i64 0, i64 0), double %122, double %125)
%127 = load float, float* %3
%128 = fpext float %127 to double
%129 = fadd double %128, 9.990000e-02
%130 = fptrunc double %129 to float
store float %130, float* %3
br label %131
131: ; preds = %120
%132 = load i32, i32* %4
%133 = add nsw i32 %132, 1
store i32 %133, i32* %4
br label %117
134: ; preds = %117
store double -2.000000e+00, double* %2
store i32 0, i32* %4
br label %135
135: ; preds = %145, %134
%136 = load i32, i32* %4
%137 = icmp slt i32 %136, 41
br i1 %137, label %138, label %148
138: ; preds = %135
%139 = load double, double* %2
%140 = load double, double* %2
%141 = call double @tan(double %140)
%142 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.8, i64 0, i64 0), double %139, double %141)
%143 = load double, double* %2
%144 = fadd double %143, 0x3FB99999992BA61B
store double %144, double* %2
br label %145
145: ; preds = %138
%146 = load i32, i32* %4
%147 = add nsw i32 %146, 1
store i32 %147, i32* %4
br label %135
148: ; preds = %135
store float -2.000000e+00, float* %3
store i32 0, i32* %4
br label %149
149: ; preds = %163, %148
%150 = load i32, i32* %4
%151 = icmp slt i32 %150, 41
br i1 %151, label %152, label %166
152: ; preds = %149
%153 = load float, float* %3
%154 = fpext float %153 to double
%155 = load float, float* %3
%156 = call i64 @tanf(float %155)
%157 = sitofp i64 %156 to double
%158 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.9, i64 0, i64 0), double %154, double %157)
%159 = load float, float* %3
%160 = fpext float %159 to double
%161 = fadd double %160, 9.990000e-02
%162 = fptrunc double %161 to float
store float %162, float* %3
br label %163
163: ; preds = %152
%164 = load i32, i32* %4
%165 = add nsw i32 %164, 1
store i32 %165, i32* %4
br label %149
166: ; preds = %149
store double -2.000000e+00, double* %2
store i32 0, i32* %4
br label %167
167: ; preds = %177, %166
%168 = load i32, i32* %4
%169 = icmp slt i32 %168, 41
br i1 %169, label %170, label %180
170: ; preds = %167
%171 = load double, double* %2
%172 = load double, double* %2
%173 = call double @exp(double %172)
%174 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.10, i64 0, i64 0), double %171, double %173)
%175 = load double, double* %2
%176 = fadd double %175, 0x3FB99999992BA61B
store double %176, double* %2
br label %177
177: ; preds = %170
%178 = load i32, i32* %4
%179 = add nsw i32 %178, 1
store i32 %179, i32* %4
br label %167
180: ; preds = %167
store float -2.000000e+00, float* %3
store i32 0, i32* %4
br label %181
181: ; preds = %195, %180
%182 = load i32, i32* %4
%183 = icmp slt i32 %182, 41
br i1 %183, label %184, label %198
184: ; preds = %181
%185 = load float, float* %3
%186 = fpext float %185 to double
%187 = load float, float* %3
%188 = call i64 @expf(float %187)
%189 = sitofp i64 %188 to double
%190 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.11, i64 0, i64 0), double %186, double %189)
%191 = load float, float* %3
%192 = fpext float %191 to double
%193 = fadd double %192, 9.990000e-02
%194 = fptrunc double %193 to float
store float %194, float* %3
br label %195
195: ; preds = %184
%196 = load i32, i32* %4
%197 = add nsw i32 %196, 1
store i32 %197, i32* %4
br label %181
198: ; preds = %181
store double 0.000000e+00, double* %2
store i32 0, i32* %4
br label %199
199: ; preds = %209, %198
%200 = load i32, i32* %4
%201 = icmp slt i32 %200, 21
br i1 %201, label %202, label %212
202: ; preds = %199
%203 = load double, double* %2
%204 = load double, double* %2
%205 = call double @sqrt(double %204)
%206 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double %203, double %205)
%207 = load double, double* %2
%208 = fadd double %207, 0x3FB99999992BA61B
store double %208, double* %2
br label %209
209: ; preds = %202
%210 = load i32, i32* %4
%211 = add nsw i32 %210, 1
store i32 %211, i32* %4
br label %199
212: ; preds = %199
store float 0.000000e+00, float* %3
store i32 0, i32* %4
br label %213
213: ; preds = %227, %212
%214 = load i32, i32* %4
%215 = icmp slt i32 %214, 21
br i1 %215, label %216, label %230
216: ; preds = %213
%217 = load float, float* %3
%218 = fpext float %217 to double
%219 = load float, float* %3
%220 = call i64 @sqrtf(float %219)
%221 = sitofp i64 %220 to double
%222 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.13, i64 0, i64 0), double %218, double %221)
%223 = load float, float* %3
%224 = fpext float %223 to double
%225 = fadd double %224, 9.990000e-02
%226 = fptrunc double %225 to float
store float %226, float* %3
br label %227
227: ; preds = %216
%228 = load i32, i32* %4
%229 = add nsw i32 %228, 1
store i32 %229, i32* %4
br label %213
230: ; preds = %213
store double 0.000000e+00, double* %2
store i32 0, i32* %4
br label %231
231: ; preds = %241, %230
%232 = load i32, i32* %4
%233 = icmp slt i32 %232, 21
br i1 %233, label %234, label %244
234: ; preds = %231
%235 = load double, double* %2
%236 = load double, double* %2
%237 = call double @log(double %236)
%238 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.14, i64 0, i64 0), double %235, double %237)
%239 = load double, double* %2
%240 = fadd double %239, 0x3FB99999992BA61B
store double %240, double* %2
br label %241
241: ; preds = %234
%242 = load i32, i32* %4
%243 = add nsw i32 %242, 1
store i32 %243, i32* %4
br label %231
244: ; preds = %231
store float 0.000000e+00, float* %3
store i32 0, i32* %4
br label %245
245: ; preds = %259, %244
%246 = load i32, i32* %4
%247 = icmp slt i32 %246, 21
br i1 %247, label %248, label %262
248: ; preds = %245
%249 = load float, float* %3
%250 = fpext float %249 to double
%251 = load float, float* %3
%252 = call i64 @logf(float %251)
%253 = sitofp i64 %252 to double
%254 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.15, i64 0, i64 0), double %250, double %253)
%255 = load float, float* %3
%256 = fpext float %255 to double
%257 = fadd double %256, 9.990000e-02
%258 = fptrunc double %257 to float
store float %258, float* %3
br label %259
259: ; preds = %248
%260 = load i32, i32* %4
%261 = add nsw i32 %260, 1
store i32 %261, i32* %4
br label %245
262: ; preds = %245
store double 0.000000e+00, double* %2
store i32 0, i32* %4
br label %263
263: ; preds = %273, %262
%264 = load i32, i32* %4
%265 = icmp slt i32 %264, 21
br i1 %265, label %266, label %276
266: ; preds = %263
%267 = load double, double* %2
%268 = load double, double* %2
%269 = call double @log10(double %268)
%270 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.16, i64 0, i64 0), double %267, double %269)
%271 = load double, double* %2
%272 = fadd double %271, 0x3FB99999992BA61B
store double %272, double* %2
br label %273
273: ; preds = %266
%274 = load i32, i32* %4
%275 = add nsw i32 %274, 1
store i32 %275, i32* %4
br label %263
276: ; preds = %263
store float 0.000000e+00, float* %3
store i32 0, i32* %4
br label %277
277: ; preds = %291, %276
%278 = load i32, i32* %4
%279 = icmp slt i32 %278, 21
br i1 %279, label %280, label %294
280: ; preds = %277
%281 = load float, float* %3
%282 = fpext float %281 to double
%283 = load float, float* %3
%284 = call i64 @log10f(float %283)
%285 = sitofp i64 %284 to double
%286 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), double %282, double %285)
%287 = load float, float* %3
%288 = fpext float %287 to double
%289 = fadd double %288, 9.990000e-02
%290 = fptrunc double %289 to float
store float %290, float* %3
br label %291
291: ; preds = %280
%292 = load i32, i32* %4
%293 = add nsw i32 %292, 1
store i32 %293, i32* %4
br label %277
294: ; preds = %277
store double -1.000000e+00, double* %2
store i32 0, i32* %4
br label %295
295: ; preds = %305, %294
%296 = load i32, i32* %4
%297 = icmp slt i32 %296, 21
br i1 %297, label %298, label %308
298: ; preds = %295
%299 = load double, double* %2
%300 = load double, double* %2
%301 = call double @asin(double %300)
%302 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.18, i64 0, i64 0), double %299, double %301)
%303 = load double, double* %2
%304 = fadd double %303, 0x3FB99999992BA61B
store double %304, double* %2
br label %305
305: ; preds = %298
%306 = load i32, i32* %4
%307 = add nsw i32 %306, 1
store i32 %307, i32* %4
br label %295
308: ; preds = %295
store float -1.000000e+00, float* %3
store i32 0, i32* %4
br label %309
309: ; preds = %323, %308
%310 = load i32, i32* %4
%311 = icmp slt i32 %310, 21
br i1 %311, label %312, label %326
312: ; preds = %309
%313 = load float, float* %3
%314 = fpext float %313 to double
%315 = load float, float* %3
%316 = call i64 @asinf(float %315)
%317 = sitofp i64 %316 to double
%318 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.19, i64 0, i64 0), double %314, double %317)
%319 = load float, float* %3
%320 = fpext float %319 to double
%321 = fadd double %320, 9.990000e-02
%322 = fptrunc double %321 to float
store float %322, float* %3
br label %323
323: ; preds = %312
%324 = load i32, i32* %4
%325 = add nsw i32 %324, 1
store i32 %325, i32* %4
br label %309
326: ; preds = %309
store double -1.000000e+00, double* %2
store i32 0, i32* %4
br label %327
327: ; preds = %337, %326
%328 = load i32, i32* %4
%329 = icmp slt i32 %328, 21
br i1 %329, label %330, label %340
330: ; preds = %327
%331 = load double, double* %2
%332 = load double, double* %2
%333 = call double @acos(double %332)
%334 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.20, i64 0, i64 0), double %331, double %333)
%335 = load double, double* %2
%336 = fadd double %335, 9.999990e-02
store double %336, double* %2
br label %337
337: ; preds = %330
%338 = load i32, i32* %4
%339 = add nsw i32 %338, 1
store i32 %339, i32* %4
br label %327
340: ; preds = %327
store float -1.000000e+00, float* %3
store i32 0, i32* %4
br label %341
341: ; preds = %355, %340
%342 = load i32, i32* %4
%343 = icmp slt i32 %342, 21
br i1 %343, label %344, label %358
344: ; preds = %341
%345 = load float, float* %3
%346 = fpext float %345 to double
%347 = load float, float* %3
%348 = call i64 @acosf(float %347)
%349 = sitofp i64 %348 to double
%350 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.21, i64 0, i64 0), double %346, double %349)
%351 = load float, float* %3
%352 = fpext float %351 to double
%353 = fadd double %352, 9.990000e-02
%354 = fptrunc double %353 to float
store float %354, float* %3
br label %355
355: ; preds = %344
%356 = load i32, i32* %4
%357 = add nsw i32 %356, 1
store i32 %357, i32* %4
br label %341
358: ; preds = %341
store double -1.000000e+00, double* %2
store i32 0, i32* %4
br label %359
359: ; preds = %369, %358
%360 = load i32, i32* %4
%361 = icmp slt i32 %360, 21
br i1 %361, label %362, label %372
362: ; preds = %359
%363 = load double, double* %2
%364 = load double, double* %2
%365 = call double @atan(double %364)
%366 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.22, i64 0, i64 0), double %363, double %365)
%367 = load double, double* %2
%368 = fadd double %367, 0x3FB99999992BA61B
store double %368, double* %2
br label %369
369: ; preds = %362
%370 = load i32, i32* %4
%371 = add nsw i32 %370, 1
store i32 %371, i32* %4
br label %359
372: ; preds = %359
store float -1.000000e+00, float* %3
store i32 0, i32* %4
br label %373
373: ; preds = %387, %372
%374 = load i32, i32* %4
%375 = icmp slt i32 %374, 21
br i1 %375, label %376, label %390
376: ; preds = %373
%377 = load float, float* %3
%378 = fpext float %377 to double
%379 = load float, float* %3
%380 = call i64 @atanf(float %379)
%381 = sitofp i64 %380 to double
%382 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.23, i64 0, i64 0), double %378, double %381)
%383 = load float, float* %3
%384 = fpext float %383 to double
%385 = fadd double %384, 9.990000e-02
%386 = fptrunc double %385 to float
store float %386, float* %3
br label %387
387: ; preds = %376
%388 = load i32, i32* %4
%389 = add nsw i32 %388, 1
store i32 %389, i32* %4
br label %373
390: ; preds = %373
store double -1.000000e+00, double* %2
store i32 0, i32* %4
br label %391
391: ; preds = %401, %390
%392 = load i32, i32* %4
%393 = icmp slt i32 %392, 21
br i1 %393, label %394, label %404
394: ; preds = %391
%395 = load double, double* %2
%396 = load double, double* %2
%397 = call double @atan2(double %396, double 1.000000e+00)
%398 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.24, i64 0, i64 0), double %395, double %397)
%399 = load double, double* %2
%400 = fadd double %399, 0x3FB99999992BA61B
store double %400, double* %2
br label %401
401: ; preds = %394
%402 = load i32, i32* %4
%403 = add nsw i32 %402, 1
store i32 %403, i32* %4
br label %391
404: ; preds = %391
store float -1.000000e+00, float* %3
store i32 0, i32* %4
br label %405
405: ; preds = %419, %404
%406 = load i32, i32* %4
%407 = icmp slt i32 %406, 21
br i1 %407, label %408, label %422
408: ; preds = %405
%409 = load float, float* %3
%410 = fpext float %409 to double
%411 = load float, float* %3
%412 = call i64 @atan2f(float %411, double 1.000000e+00)
%413 = sitofp i64 %412 to double
%414 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.25, i64 0, i64 0), double %410, double %413)
%415 = load float, float* %3
%416 = fpext float %415 to double
%417 = fadd double %416, 9.990000e-02
%418 = fptrunc double %417 to float
store float %418, float* %3
br label %419
419: ; preds = %408
%420 = load i32, i32* %4
%421 = add nsw i32 %420, 1
store i32 %421, i32* %4
br label %405
422: ; preds = %405
ret i32 0
}

LLVM IR (-O2):
@.str = [29 x i8] c"floorD(%+20.13e) = %+20.13e\0A\00"
@.str.1 = [27 x i8] c"floorF(%+20.4e) = %+20.4e\0A\00"
@.str.2 = [29 x i8] c" ceilD(%+20.13e) = %+20.13e\0A\00"
@.str.3 = [27 x i8] c" ceilF(%+20.4e) = %+20.4e\0A\00"
@.str.4 = [29 x i8] c" sinD(%+20.13e) = %+20.13e\0A\00"
@.str.5 = [27 x i8] c" sinF(%+20.4e) = %+20.4e\0A\00"
@.str.6 = [29 x i8] c" cosD(%+20.13e) = %+20.13e\0A\00"
@.str.7 = [27 x i8] c" cosF(%+20.4e) = %+20.4e\0A\00"
@.str.8 = [29 x i8] c" tanD(%+20.13e) = %+20.13e\0A\00"
@.str.9 = [27 x i8] c" tanF(%+20.4e) = %+20.4e\0A\00"
@.str.10 = [29 x i8] c" expD(%+20.13e) = %+20.13e\0A\00"
@.str.11 = [27 x i8] c" expF(%+20.4e) = %+20.4e\0A\00"
@.str.12 = [29 x i8] c" sqrtD(%+20.13e) = %+20.13e\0A\00"
@.str.13 = [27 x i8] c" sqrtF(%+20.4e) = %+20.4e\0A\00"
@.str.14 = [29 x i8] c" logD(%+20.13e) = %+20.13e\0A\00"
@.str.15 = [27 x i8] c" logF(%+20.4e) = %+20.4e\0A\00"
@.str.16 = [29 x i8] c"log10D(%+20.13e) = %+20.13e\0A\00"
@.str.17 = [27 x i8] c"log10F(%+20.4e) = %+20.4e\0A\00"
@.str.18 = [29 x i8] c" asinD(%+20.13e) = %+20.13e\0A\00"
@.str.19 = [27 x i8] c" asinF(%+20.4e) = %+20.4e\0A\00"
@.str.20 = [29 x i8] c" acosD(%+20.13e) = %+20.10e\0A\00"
@.str.21 = [27 x i8] c" acosF(%+20.4e) = %+20.4e\0A\00"
@.str.22 = [29 x i8] c" atanD(%+20.13e) = %+20.13e\0A\00"
@.str.23 = [27 x i8] c" atanF(%+20.4e) = %+20.4e\0A\00"
@.str.24 = [29 x i8] c"atan2D(%+20.13e) = %+20.13e\0A\00"
@.str.25 = [27 x i8] c"atan2F(%+20.4e) = %+20.4e\0A\00"
define i32 @main() {
br label %1
1: ; preds = %0, %1
%2 = phi double [ -2.000000e+00, %0 ], [ %6, %1 ]
%3 = phi i32 [ 0, %0 ], [ %7, %1 ]
%4 = tail call double @llvm.floor.f64(double %2)
%5 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str, i64 0, i64 0), double %2, double %4)
%6 = fadd double %2, 0x3FB99999992BA61B
%7 = add nuw nsw i32 %3, 1
%8 = icmp eq i32 %7, 41
br i1 %8, label %9, label %1
9: ; preds = %1, %9
%10 = phi float [ %17, %9 ], [ -2.000000e+00, %1 ]
%11 = phi i32 [ %18, %9 ], [ 0, %1 ]
%12 = fpext float %10 to double
%13 = tail call i64 @floorf(float %10)
%14 = sitofp i64 %13 to double
%15 = tail call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.1, i64 0, i64 0), double %12, double %14)
%16 = fadd double %12, 9.990000e-02
%17 = fptrunc double %16 to float
%18 = add nuw nsw i32 %11, 1
%19 = icmp eq i32 %18, 41
br i1 %19, label %20, label %9
20: ; preds = %9, %20
%21 = phi double [ %25, %20 ], [ -2.000000e+00, %9 ]
%22 = phi i32 [ %26, %20 ], [ 0, %9 ]
%23 = tail call double @llvm.ceil.f64(double %21)
%24 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.2, i64 0, i64 0), double %21, double %23)
%25 = fadd double %21, 0x3FB99999992BA61B
%26 = add nuw nsw i32 %22, 1
%27 = icmp eq i32 %26, 41
br i1 %27, label %28, label %20
28: ; preds = %20, %28
%29 = phi float [ %36, %28 ], [ -2.000000e+00, %20 ]
%30 = phi i32 [ %37, %28 ], [ 0, %20 ]
%31 = fpext float %29 to double
%32 = tail call i64 @ceilf(float %29)
%33 = sitofp i64 %32 to double
%34 = tail call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.3, i64 0, i64 0), double %31, double %33)
%35 = fadd double %31, 9.990000e-02
%36 = fptrunc double %35 to float
%37 = add nuw nsw i32 %30, 1
%38 = icmp eq i32 %37, 41
br i1 %38, label %39, label %28
39: ; preds = %28, %39
%40 = phi double [ %44, %39 ], [ -2.000000e+00, %28 ]
%41 = phi i32 [ %45, %39 ], [ 0, %28 ]
%42 = tail call double @sin(double %40)
%43 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.4, i64 0, i64 0), double %40, double %42)
%44 = fadd double %40, 0x3FB99999992BA61B
%45 = add nuw nsw i32 %41, 1
%46 = icmp eq i32 %45, 41
br i1 %46, label %47, label %39
47: ; preds = %39, %47
%48 = phi float [ %55, %47 ], [ -2.000000e+00, %39 ]
%49 = phi i32 [ %56, %47 ], [ 0, %39 ]
%50 = fpext float %48 to double
%51 = tail call i64 @sinf(float %48)
%52 = sitofp i64 %51 to double
%53 = tail call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.5, i64 0, i64 0), double %50, double %52)
%54 = fadd double %50, 9.990000e-02
%55 = fptrunc double %54 to float
%56 = add nuw nsw i32 %49, 1
%57 = icmp eq i32 %56, 41
br i1 %57, label %58, label %47
58: ; preds = %47, %58
%59 = phi double [ %63, %58 ], [ -2.000000e+00, %47 ]
%60 = phi i32 [ %64, %58 ], [ 0, %47 ]
%61 = tail call double @cos(double %59)
%62 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.6, i64 0, i64 0), double %59, double %61)
%63 = fadd double %59, 0x3FB99999992BA61B
%64 = add nuw nsw i32 %60, 1
%65 = icmp eq i32 %64, 41
br i1 %65, label %66, label %58
66: ; preds = %58, %66
%67 = phi float [ %74, %66 ], [ -2.000000e+00, %58 ]
%68 = phi i32 [ %75, %66 ], [ 0, %58 ]
%69 = fpext float %67 to double
%70 = tail call i64 @cosf(float %67)
%71 = sitofp i64 %70 to double
%72 = tail call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.7, i64 0, i64 0), double %69, double %71)
%73 = fadd double %69, 9.990000e-02
%74 = fptrunc double %73 to float
%75 = add nuw nsw i32 %68, 1
%76 = icmp eq i32 %75, 41
br i1 %76, label %77, label %66
77: ; preds = %66, %77
%78 = phi double [ %82, %77 ], [ -2.000000e+00, %66 ]
%79 = phi i32 [ %83, %77 ], [ 0, %66 ]
%80 = tail call double @tan(double %78)
%81 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.8, i64 0, i64 0), double %78, double %80)
%82 = fadd double %78, 0x3FB99999992BA61B
%83 = add nuw nsw i32 %79, 1
%84 = icmp eq i32 %83, 41
br i1 %84, label %85, label %77
85: ; preds = %77, %85
%86 = phi float [ %93, %85 ], [ -2.000000e+00, %77 ]
%87 = phi i32 [ %94, %85 ], [ 0, %77 ]
%88 = fpext float %86 to double
%89 = tail call i64 @tanf(float %86)
%90 = sitofp i64 %89 to double
%91 = tail call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.9, i64 0, i64 0), double %88, double %90)
%92 = fadd double %88, 9.990000e-02
%93 = fptrunc double %92 to float
%94 = add nuw nsw i32 %87, 1
%95 = icmp eq i32 %94, 41
br i1 %95, label %96, label %85
96: ; preds = %85, %96
%97 = phi double [ %101, %96 ], [ -2.000000e+00, %85 ]
%98 = phi i32 [ %102, %96 ], [ 0, %85 ]
%99 = tail call double @exp(double %97)
%100 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.10, i64 0, i64 0), double %97, double %99)
%101 = fadd double %97, 0x3FB99999992BA61B
%102 = add nuw nsw i32 %98, 1
%103 = icmp eq i32 %102, 41
br i1 %103, label %104, label %96
104: ; preds = %96, %104
%105 = phi float [ %112, %104 ], [ -2.000000e+00, %96 ]
%106 = phi i32 [ %113, %104 ], [ 0, %96 ]
%107 = fpext float %105 to double
%108 = tail call i64 @expf(float %105)
%109 = sitofp i64 %108 to double
%110 = tail call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.11, i64 0, i64 0), double %107, double %109)
%111 = fadd double %107, 9.990000e-02
%112 = fptrunc double %111 to float
%113 = add nuw nsw i32 %106, 1
%114 = icmp eq i32 %113, 41
br i1 %114, label %115, label %104
115: ; preds = %104
%116 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0.000000e+00, double 0.000000e+00)
%117 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FB99999992BA61B, double 0x3FD43D13621CD2C9)
%118 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FC99999992BA61B, double 0x3FDC9F25C58276EC)
%119 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FD3333332E0BC94, double 0x3FE186F174D2E0CF)
%120 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FD99999992BA61B, double 0x3FE43D13621CD2C9)
%121 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FDFFFFFFF768FA2, double 0x3FE6A09E664EA43F)
%122 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FE3333332E0BC94, double 0x3FE8C97EF40A376F)
%123 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FE6666666063157, double 0x3FEAC5EB3F41344A)
%124 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FE99999992BA61A, double 0x3FEC9F25C58276EB)
%125 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FECCCCCCC511ADD, double 0x3FEE5B9D132B3C2C)
%126 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FEFFFFFFF768FA0, double 0x3FEFFFFFFFBB47D0)
%127 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FF19999994E0232, double 0x3FF0C7EBC9464D8A)
%128 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FF3333332E0BC94, double 0x3FF186F174D2E0CF)
%129 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FF4CCCCCC7376F6, double 0x3FF23E289600E20C)
%130 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FF6666666063158, double 0x3FF2EE73DAB3F3AA)
%131 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FF7FFFFFF98EBBA, double 0x3FF3988E13DF0C37)
%132 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FF99999992BA61C, double 0x3FF43D13621CD2C9)
%133 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FFB333332BE607E, double 0x3FF4DC87D5E78527)
%134 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FFCCCCCCC511AE0, double 0x3FF5775C5421D931)
%135 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FFE666665E3D542, double 0x3FF60DF2450B5A91)
%136 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), double 0x3FFFFFFFFF768FA4, double 0x3FF6A09E664EA440)
br label %137
137: ; preds = %115, %137
%138 = phi float [ %145, %137 ], [ 0.000000e+00, %115 ]
%139 = phi i32 [ %146, %137 ], [ 0, %115 ]
%140 = fpext float %138 to double
%141 = tail call i64 @sqrtf(float %138)
%142 = sitofp i64 %141 to double
%143 = tail call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.13, i64 0, i64 0), double %140, double %142)
%144 = fadd double %140, 9.990000e-02
%145 = fptrunc double %144 to float
%146 = add nuw nsw i32 %139, 1
%147 = icmp eq i32 %146, 21
br i1 %147, label %148, label %137
148: ; preds = %137, %148
%149 = phi double [ %153, %148 ], [ 0.000000e+00, %137 ]
%150 = phi i32 [ %154, %148 ], [ 0, %137 ]
%151 = tail call double @log(double %149)
%152 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.14, i64 0, i64 0), double %149, double %151)
%153 = fadd double %149, 0x3FB99999992BA61B
%154 = add nuw nsw i32 %150, 1
%155 = icmp eq i32 %154, 21
br i1 %155, label %156, label %148
156: ; preds = %148, %156
%157 = phi float [ %164, %156 ], [ 0.000000e+00, %148 ]
%158 = phi i32 [ %165, %156 ], [ 0, %148 ]
%159 = fpext float %157 to double
%160 = tail call i64 @logf(float %157)
%161 = sitofp i64 %160 to double
%162 = tail call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.15, i64 0, i64 0), double %159, double %161)
%163 = fadd double %159, 9.990000e-02
%164 = fptrunc double %163 to float
%165 = add nuw nsw i32 %158, 1
%166 = icmp eq i32 %165, 21
br i1 %166, label %167, label %156
167: ; preds = %156, %167
%168 = phi double [ %172, %167 ], [ 0.000000e+00, %156 ]
%169 = phi i32 [ %173, %167 ], [ 0, %156 ]
%170 = tail call double @log10(double %168)
%171 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.16, i64 0, i64 0), double %168, double %170)
%172 = fadd double %168, 0x3FB99999992BA61B
%173 = add nuw nsw i32 %169, 1
%174 = icmp eq i32 %173, 21
br i1 %174, label %175, label %167
175: ; preds = %167, %175
%176 = phi float [ %183, %175 ], [ 0.000000e+00, %167 ]
%177 = phi i32 [ %184, %175 ], [ 0, %167 ]
%178 = fpext float %176 to double
%179 = tail call i64 @log10f(float %176)
%180 = sitofp i64 %179 to double
%181 = tail call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i64 0, i64 0), double %178, double %180)
%182 = fadd double %178, 9.990000e-02
%183 = fptrunc double %182 to float
%184 = add nuw nsw i32 %177, 1
%185 = icmp eq i32 %184, 21
br i1 %185, label %186, label %175
186: ; preds = %175, %186
%187 = phi double [ %191, %186 ], [ -1.000000e+00, %175 ]
%188 = phi i32 [ %192, %186 ], [ 0, %175 ]
%189 = tail call double @asin(double %187)
%190 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.18, i64 0, i64 0), double %187, double %189)
%191 = fadd double %187, 0x3FB99999992BA61B
%192 = add nuw nsw i32 %188, 1
%193 = icmp eq i32 %192, 21
br i1 %193, label %194, label %186
194: ; preds = %186, %194
%195 = phi float [ %202, %194 ], [ -1.000000e+00, %186 ]
%196 = phi i32 [ %203, %194 ], [ 0, %186 ]
%197 = fpext float %195 to double
%198 = tail call i64 @asinf(float %195)
%199 = sitofp i64 %198 to double
%200 = tail call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.19, i64 0, i64 0), double %197, double %199)
%201 = fadd double %197, 9.990000e-02
%202 = fptrunc double %201 to float
%203 = add nuw nsw i32 %196, 1
%204 = icmp eq i32 %203, 21
br i1 %204, label %205, label %194
205: ; preds = %194, %205
%206 = phi double [ %210, %205 ], [ -1.000000e+00, %194 ]
%207 = phi i32 [ %211, %205 ], [ 0, %194 ]
%208 = tail call double @acos(double %206)
%209 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.20, i64 0, i64 0), double %206, double %208)
%210 = fadd double %206, 9.999990e-02
%211 = add nuw nsw i32 %207, 1
%212 = icmp eq i32 %211, 21
br i1 %212, label %213, label %205
213: ; preds = %205, %213
%214 = phi float [ %221, %213 ], [ -1.000000e+00, %205 ]
%215 = phi i32 [ %222, %213 ], [ 0, %205 ]
%216 = fpext float %214 to double
%217 = tail call i64 @acosf(float %214)
%218 = sitofp i64 %217 to double
%219 = tail call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.21, i64 0, i64 0), double %216, double %218)
%220 = fadd double %216, 9.990000e-02
%221 = fptrunc double %220 to float
%222 = add nuw nsw i32 %215, 1
%223 = icmp eq i32 %222, 21
br i1 %223, label %224, label %213
224: ; preds = %213, %224
%225 = phi double [ %229, %224 ], [ -1.000000e+00, %213 ]
%226 = phi i32 [ %230, %224 ], [ 0, %213 ]
%227 = tail call double @atan(double %225)
%228 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.22, i64 0, i64 0), double %225, double %227)
%229 = fadd double %225, 0x3FB99999992BA61B
%230 = add nuw nsw i32 %226, 1
%231 = icmp eq i32 %230, 21
br i1 %231, label %232, label %224
232: ; preds = %224, %232
%233 = phi float [ %240, %232 ], [ -1.000000e+00, %224 ]
%234 = phi i32 [ %241, %232 ], [ 0, %224 ]
%235 = fpext float %233 to double
%236 = tail call i64 @atanf(float %233)
%237 = sitofp i64 %236 to double
%238 = tail call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.23, i64 0, i64 0), double %235, double %237)
%239 = fadd double %235, 9.990000e-02
%240 = fptrunc double %239 to float
%241 = add nuw nsw i32 %234, 1
%242 = icmp eq i32 %241, 21
br i1 %242, label %243, label %232
243: ; preds = %232, %243
%244 = phi double [ %248, %243 ], [ -1.000000e+00, %232 ]
%245 = phi i32 [ %249, %243 ], [ 0, %232 ]
%246 = tail call double @atan2(double %244, double 1.000000e+00)
%247 = tail call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.24, i64 0, i64 0), double %244, double %246)
%248 = fadd double %244, 0x3FB99999992BA61B
%249 = add nuw nsw i32 %245, 1
%250 = icmp eq i32 %249, 21
br i1 %250, label %251, label %243
251: ; preds = %243, %251
%252 = phi float [ %259, %251 ], [ -1.000000e+00, %243 ]
%253 = phi i32 [ %260, %251 ], [ 0, %243 ]
%254 = fpext float %252 to double
%255 = tail call i64 @atan2f(float %252, double 1.000000e+00)
%256 = sitofp i64 %255 to double
%257 = tail call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.25, i64 0, i64 0), double %254, double %256)
%258 = fadd double %254, 9.990000e-02
%259 = fptrunc double %258 to float
%260 = add nuw nsw i32 %253, 1
%261 = icmp eq i32 %260, 21
br i1 %261, label %262, label %251
262: ; preds = %251
ret i32 0
}