#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 */
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
int EOF;
scalar_t__ NpyOS_ascii_isalnum(int);
scalar_t__ NpyOS_ascii_isdigit(int);
scalar_t__ NpyOS_ascii_isspace(int);
double NpyOS_ascii_strtod(char *, char **);
int getc(int /*<<< orphan*/ *);
int /*<<< orphan*/ ungetc(int, int /*<<< orphan*/ *);
int NpyOS_ascii_ftolf(FILE *fp, double *value) {
  char buffer[120 + 1];
  char *endp;
  char *p;
  int c;
  int ok;
  c = getc(fp);
  if (c == EOF) {
    return EOF;
  }
  while (NpyOS_ascii_isspace(c)) {
    c = getc(fp);
  }
  endp = buffer;
  do {
    if (c == '+' || c == '-')
      do {
        if (c == EOF || endp >= buffer + 120)
          goto buffer_filled;
        *endp++ = (char)c;
        c = getc(fp);
      } while (0);
  } while (0);
  if (c == 'n' || c == 'N') {
    do {
      if (c == EOF || endp >= buffer + 120)
        goto buffer_filled;
      *endp++ = (char)c;
      c = getc(fp);
    } while (0);
    do {
      for (p = ("an"); *p != '\0' && (c == *p || c + ('a' - 'A') == *p); ++p)
        do {
          if (c == EOF || endp >= buffer + 120)
            goto buffer_filled;
          *endp++ = (char)c;
          c = getc(fp);
        } while (0);
      if (*p != '\0')
        goto buffer_filled;
    } while (0);
    if (c == '(') {
      do {
        if (c == EOF || endp >= buffer + 120)
          goto buffer_filled;
        *endp++ = (char)c;
        c = getc(fp);
      } while (0);
      while (NpyOS_ascii_isalnum(c) || c == '_') {
        do {
          if (c == EOF || endp >= buffer + 120)
            goto buffer_filled;
          *endp++ = (char)c;
          c = getc(fp);
        } while (0);
      };
      if (c == ')') {
        do {
          if (c == EOF || endp >= buffer + 120)
            goto buffer_filled;
          *endp++ = (char)c;
          c = getc(fp);
        } while (0);
      }
    }
    goto buffer_filled;
  } else if (c == 'i' || c == 'I') {
    do {
      if (c == EOF || endp >= buffer + 120)
        goto buffer_filled;
      *endp++ = (char)c;
      c = getc(fp);
    } while (0);
    do {
      for (p = ("nfinity"); *p != '\0' && (c == *p || c + ('a' - 'A') == *p);
           ++p)
        do {
          if (c == EOF || endp >= buffer + 120)
            goto buffer_filled;
          *endp++ = (char)c;
          c = getc(fp);
        } while (0);
      if (*p != '\0')
        goto buffer_filled;
    } while (0);
    goto buffer_filled;
  }
  while (NpyOS_ascii_isdigit(c)) {
    do {
      if (c == EOF || endp >= buffer + 120)
        goto buffer_filled;
      *endp++ = (char)c;
      c = getc(fp);
    } while (0);
  };
  if (c == '.') {
    do {
      if (c == EOF || endp >= buffer + 120)
        goto buffer_filled;
      *endp++ = (char)c;
      c = getc(fp);
    } while (0);
    do {
      ok = 0;
      while (NpyOS_ascii_isdigit(c)) {
        do {
          if (c == EOF || endp >= buffer + 120)
            goto buffer_filled;
          *endp++ = (char)c;
          c = getc(fp);
        } while (0);
        ok = 1;
      }
      if (!ok)
        goto buffer_filled;
    } while (0);
  }
  if (c == 'e' || c == 'E') {
    do {
      if (c == EOF || endp >= buffer + 120)
        goto buffer_filled;
      *endp++ = (char)c;
      c = getc(fp);
    } while (0);
    do {
      if (c == '+' || c == '-')
        do {
          if (c == EOF || endp >= buffer + 120)
            goto buffer_filled;
          *endp++ = (char)c;
          c = getc(fp);
        } while (0);
    } while (0);
    do {
      ok = 0;
      while (NpyOS_ascii_isdigit(c)) {
        do {
          if (c == EOF || endp >= buffer + 120)
            goto buffer_filled;
          *endp++ = (char)c;
          c = getc(fp);
        } while (0);
        ok = 1;
      }
      if (!ok)
        goto buffer_filled;
    } while (0);
  }
  goto buffer_filled;
buffer_filled:
  ungetc(c, fp);
  *endp = '\0';
  *value = NpyOS_ascii_strtod(buffer, &p);
  return (buffer == p) ? 0 : 1;
}


x86 assembly (clang, -O0):
<NpyOS_ascii_ftolf>:
push   %rbp
mov    %rsp,%rbp
sub    $0xc0,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
mov    -0xb4(%rbp),%eax
mov    0x2e59(%rip),%rcx
cmp    (%rcx),%eax
jne    11a8 <NpyOS_ascii_ftolf+0x48>
mov    0x2e4a(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1b58 <NpyOS_ascii_ftolf+0x9f8>
jmp    11ad <NpyOS_ascii_ftolf+0x4d>
mov    -0xb4(%rbp),%edi
call   1030 <NpyOS_ascii_isspace@plt>
cmp    $0x0,%rax
je     11d6 <NpyOS_ascii_ftolf+0x76>
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
jmp    11ad <NpyOS_ascii_ftolf+0x4d>
lea    -0xa0(%rbp),%rax
mov    %rax,-0xa8(%rbp)
cmpl   $0x2b,-0xb4(%rbp)
je     11fe <NpyOS_ascii_ftolf+0x9e>
cmpl   $0x2d,-0xb4(%rbp)
jne    126b <NpyOS_ascii_ftolf+0x10b>
jmp    1203 <NpyOS_ascii_ftolf+0xa3>
mov    -0xb4(%rbp),%eax
mov    0x2dd8(%rip),%rcx
cmp    (%rcx),%eax
je     1233 <NpyOS_ascii_ftolf+0xd3>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     1238 <NpyOS_ascii_ftolf+0xd8>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
jmp    126b <NpyOS_ascii_ftolf+0x10b>
jmp    1270 <NpyOS_ascii_ftolf+0x110>
cmpl   $0x6e,-0xb4(%rbp)
je     128a <NpyOS_ascii_ftolf+0x12a>
cmpl   $0x4e,-0xb4(%rbp)
jne    15cc <NpyOS_ascii_ftolf+0x46c>
jmp    128f <NpyOS_ascii_ftolf+0x12f>
mov    -0xb4(%rbp),%eax
mov    0x2d4c(%rip),%rcx
cmp    (%rcx),%eax
je     12bf <NpyOS_ascii_ftolf+0x15f>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     12c4 <NpyOS_ascii_ftolf+0x164>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
jmp    12f7 <NpyOS_ascii_ftolf+0x197>
lea    0xd02(%rip),%rax
mov    %rax,-0xb0(%rbp)
mov    -0xb0(%rbp),%rax
movsbl (%rax),%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0xb9(%rbp)
je     136a <NpyOS_ascii_ftolf+0x20a>
mov    -0xb4(%rbp),%ecx
mov    -0xb0(%rbp),%rax
movsbl (%rax),%edx
mov    $0x1,%al
cmp    %edx,%ecx
mov    %al,-0xba(%rbp)
je     135e <NpyOS_ascii_ftolf+0x1fe>
mov    -0xb4(%rbp),%eax
add    $0x20,%eax
mov    -0xb0(%rbp),%rcx
movsbl (%rcx),%ecx
cmp    %ecx,%eax
sete   %al
mov    %al,-0xba(%rbp)
mov    -0xba(%rbp),%al
mov    %al,-0xb9(%rbp)
mov    -0xb9(%rbp),%al
test   $0x1,%al
jne    137d <NpyOS_ascii_ftolf+0x21d>
jmp    1401 <NpyOS_ascii_ftolf+0x2a1>
jmp    1382 <NpyOS_ascii_ftolf+0x222>
mov    -0xb4(%rbp),%eax
mov    0x2c59(%rip),%rcx
cmp    (%rcx),%eax
je     13b2 <NpyOS_ascii_ftolf+0x252>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     13b7 <NpyOS_ascii_ftolf+0x257>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
jmp    13ea <NpyOS_ascii_ftolf+0x28a>
mov    -0xb0(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0xb0(%rbp)
jmp    1305 <NpyOS_ascii_ftolf+0x1a5>
mov    -0xb0(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x0,%eax
je     1419 <NpyOS_ascii_ftolf+0x2b9>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
jmp    141e <NpyOS_ascii_ftolf+0x2be>
cmpl   $0x28,-0xb4(%rbp)
jne    15c7 <NpyOS_ascii_ftolf+0x467>
jmp    1430 <NpyOS_ascii_ftolf+0x2d0>
mov    -0xb4(%rbp),%eax
mov    0x2bab(%rip),%rcx
cmp    (%rcx),%eax
je     1460 <NpyOS_ascii_ftolf+0x300>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     1465 <NpyOS_ascii_ftolf+0x305>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
jmp    1498 <NpyOS_ascii_ftolf+0x338>
mov    -0xb4(%rbp),%edi
call   1050 <NpyOS_ascii_isalnum@plt>
mov    %rax,%rcx
mov    $0x1,%al
cmp    $0x0,%rcx
mov    %al,-0xbb(%rbp)
jne    14c8 <NpyOS_ascii_ftolf+0x368>
cmpl   $0x5f,-0xb4(%rbp)
sete   %al
mov    %al,-0xbb(%rbp)
mov    -0xbb(%rbp),%al
test   $0x1,%al
jne    14db <NpyOS_ascii_ftolf+0x37b>
jmp    1548 <NpyOS_ascii_ftolf+0x3e8>
jmp    14e0 <NpyOS_ascii_ftolf+0x380>
mov    -0xb4(%rbp),%eax
mov    0x2afb(%rip),%rcx
cmp    (%rcx),%eax
je     1510 <NpyOS_ascii_ftolf+0x3b0>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     1515 <NpyOS_ascii_ftolf+0x3b5>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
jmp    1498 <NpyOS_ascii_ftolf+0x338>
cmpl   $0x29,-0xb4(%rbp)
jne    15c2 <NpyOS_ascii_ftolf+0x462>
jmp    155a <NpyOS_ascii_ftolf+0x3fa>
mov    -0xb4(%rbp),%eax
mov    0x2a81(%rip),%rcx
cmp    (%rcx),%eax
je     158a <NpyOS_ascii_ftolf+0x42a>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     158f <NpyOS_ascii_ftolf+0x42f>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
jmp    15c2 <NpyOS_ascii_ftolf+0x462>
jmp    15c7 <NpyOS_ascii_ftolf+0x467>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
cmpl   $0x69,-0xb4(%rbp)
je     15e6 <NpyOS_ascii_ftolf+0x486>
cmpl   $0x49,-0xb4(%rbp)
jne    177f <NpyOS_ascii_ftolf+0x61f>
jmp    15eb <NpyOS_ascii_ftolf+0x48b>
mov    -0xb4(%rbp),%eax
mov    0x29f0(%rip),%rcx
cmp    (%rcx),%eax
je     161b <NpyOS_ascii_ftolf+0x4bb>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     1620 <NpyOS_ascii_ftolf+0x4c0>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
jmp    1653 <NpyOS_ascii_ftolf+0x4f3>
lea    0x9a9(%rip),%rax
mov    %rax,-0xb0(%rbp)
mov    -0xb0(%rbp),%rax
movsbl (%rax),%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0xbc(%rbp)
je     16c6 <NpyOS_ascii_ftolf+0x566>
mov    -0xb4(%rbp),%ecx
mov    -0xb0(%rbp),%rax
movsbl (%rax),%edx
mov    $0x1,%al
cmp    %edx,%ecx
mov    %al,-0xbd(%rbp)
je     16ba <NpyOS_ascii_ftolf+0x55a>
mov    -0xb4(%rbp),%eax
add    $0x20,%eax
mov    -0xb0(%rbp),%rcx
movsbl (%rcx),%ecx
cmp    %ecx,%eax
sete   %al
mov    %al,-0xbd(%rbp)
mov    -0xbd(%rbp),%al
mov    %al,-0xbc(%rbp)
mov    -0xbc(%rbp),%al
test   $0x1,%al
jne    16d9 <NpyOS_ascii_ftolf+0x579>
jmp    175d <NpyOS_ascii_ftolf+0x5fd>
jmp    16de <NpyOS_ascii_ftolf+0x57e>
mov    -0xb4(%rbp),%eax
mov    0x28fd(%rip),%rcx
cmp    (%rcx),%eax
je     170e <NpyOS_ascii_ftolf+0x5ae>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     1713 <NpyOS_ascii_ftolf+0x5b3>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
jmp    1746 <NpyOS_ascii_ftolf+0x5e6>
mov    -0xb0(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0xb0(%rbp)
jmp    1661 <NpyOS_ascii_ftolf+0x501>
mov    -0xb0(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x0,%eax
je     1775 <NpyOS_ascii_ftolf+0x615>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
jmp    177a <NpyOS_ascii_ftolf+0x61a>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
jmp    1784 <NpyOS_ascii_ftolf+0x624>
jmp    1789 <NpyOS_ascii_ftolf+0x629>
mov    -0xb4(%rbp),%edi
call   1040 <NpyOS_ascii_isdigit@plt>
cmp    $0x0,%rax
je     180b <NpyOS_ascii_ftolf+0x6ab>
jmp    17a3 <NpyOS_ascii_ftolf+0x643>
mov    -0xb4(%rbp),%eax
mov    0x2838(%rip),%rcx
cmp    (%rcx),%eax
je     17d3 <NpyOS_ascii_ftolf+0x673>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     17d8 <NpyOS_ascii_ftolf+0x678>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
jmp    1789 <NpyOS_ascii_ftolf+0x629>
cmpl   $0x2e,-0xb4(%rbp)
jne    1937 <NpyOS_ascii_ftolf+0x7d7>
jmp    181d <NpyOS_ascii_ftolf+0x6bd>
mov    -0xb4(%rbp),%eax
mov    0x27be(%rip),%rcx
cmp    (%rcx),%eax
je     184d <NpyOS_ascii_ftolf+0x6ed>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     1852 <NpyOS_ascii_ftolf+0x6f2>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
jmp    1885 <NpyOS_ascii_ftolf+0x725>
movl   $0x0,-0xb8(%rbp)
mov    -0xb4(%rbp),%edi
call   1040 <NpyOS_ascii_isdigit@plt>
cmp    $0x0,%rax
je     191b <NpyOS_ascii_ftolf+0x7bb>
jmp    18a9 <NpyOS_ascii_ftolf+0x749>
mov    -0xb4(%rbp),%eax
mov    0x2732(%rip),%rcx
cmp    (%rcx),%eax
je     18d9 <NpyOS_ascii_ftolf+0x779>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     18de <NpyOS_ascii_ftolf+0x77e>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
movl   $0x1,-0xb8(%rbp)
jmp    188f <NpyOS_ascii_ftolf+0x72f>
cmpl   $0x0,-0xb8(%rbp)
jne    192d <NpyOS_ascii_ftolf+0x7cd>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
jmp    1932 <NpyOS_ascii_ftolf+0x7d2>
jmp    1937 <NpyOS_ascii_ftolf+0x7d7>
cmpl   $0x65,-0xb4(%rbp)
je     1951 <NpyOS_ascii_ftolf+0x7f1>
cmpl   $0x45,-0xb4(%rbp)
jne    1b01 <NpyOS_ascii_ftolf+0x9a1>
jmp    1956 <NpyOS_ascii_ftolf+0x7f6>
mov    -0xb4(%rbp),%eax
mov    0x2685(%rip),%rcx
cmp    (%rcx),%eax
je     1986 <NpyOS_ascii_ftolf+0x826>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     198b <NpyOS_ascii_ftolf+0x82b>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
jmp    19be <NpyOS_ascii_ftolf+0x85e>
cmpl   $0x2b,-0xb4(%rbp)
je     19d8 <NpyOS_ascii_ftolf+0x878>
cmpl   $0x2d,-0xb4(%rbp)
jne    1a45 <NpyOS_ascii_ftolf+0x8e5>
jmp    19dd <NpyOS_ascii_ftolf+0x87d>
mov    -0xb4(%rbp),%eax
mov    0x25fe(%rip),%rcx
cmp    (%rcx),%eax
je     1a0d <NpyOS_ascii_ftolf+0x8ad>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     1a12 <NpyOS_ascii_ftolf+0x8b2>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
jmp    1a45 <NpyOS_ascii_ftolf+0x8e5>
jmp    1a4a <NpyOS_ascii_ftolf+0x8ea>
jmp    1a4f <NpyOS_ascii_ftolf+0x8ef>
movl   $0x0,-0xb8(%rbp)
mov    -0xb4(%rbp),%edi
call   1040 <NpyOS_ascii_isdigit@plt>
cmp    $0x0,%rax
je     1ae5 <NpyOS_ascii_ftolf+0x985>
jmp    1a73 <NpyOS_ascii_ftolf+0x913>
mov    -0xb4(%rbp),%eax
mov    0x2568(%rip),%rcx
cmp    (%rcx),%eax
je     1aa3 <NpyOS_ascii_ftolf+0x943>
mov    -0xa8(%rbp),%rax
lea    -0xa0(%rbp),%rcx
add    $0x78,%rcx
cmp    %rcx,%rax
jb     1aa8 <NpyOS_ascii_ftolf+0x948>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%eax
mov    %al,%cl
mov    -0xa8(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0xa8(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rdi
call   1080 <getc@plt>
mov    %eax,-0xb4(%rbp)
movl   $0x1,-0xb8(%rbp)
jmp    1a59 <NpyOS_ascii_ftolf+0x8f9>
cmpl   $0x0,-0xb8(%rbp)
jne    1af7 <NpyOS_ascii_ftolf+0x997>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
jmp    1afc <NpyOS_ascii_ftolf+0x99c>
jmp    1b01 <NpyOS_ascii_ftolf+0x9a1>
jmp    1b06 <NpyOS_ascii_ftolf+0x9a6>
mov    -0xb4(%rbp),%edi
mov    -0x10(%rbp),%rsi
call   1070 <ungetc@plt>
mov    -0xa8(%rbp),%rax
movb   $0x0,(%rax)
lea    -0xa0(%rbp),%rdi
lea    -0xb0(%rbp),%rsi
call   1060 <NpyOS_ascii_strtod@plt>
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
lea    -0xa0(%rbp),%rdx
mov    -0xb0(%rbp),%rsi
mov    $0x1,%eax
xor    %ecx,%ecx
cmp    %rsi,%rdx
cmove  %ecx,%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0xc0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<NpyOS_ascii_ftolf>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xa8,%rsp
mov    %rsi,%rbp
mov    %rdi,%r15
call   1080 <getc@plt>
mov    %eax,%ebx
mov    0x2e63(%rip),%r14
cmp    (%r14),%eax
je     11ec <NpyOS_ascii_ftolf+0x8c>
mov    %ebx,%edi
nopl   0x0(%rax)
call   1030 <NpyOS_ascii_isspace@plt>
test   %rax,%rax
je     11a8 <NpyOS_ascii_ftolf+0x48>
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
mov    %eax,%edi
jmp    1190 <NpyOS_ascii_ftolf+0x30>
cmp    $0x2d,%ebx
je     11b2 <NpyOS_ascii_ftolf+0x52>
cmp    $0x2b,%ebx
jne    1200 <NpyOS_ascii_ftolf+0xa0>
cmp    (%r14),%ebx
jne    1207 <NpyOS_ascii_ftolf+0xa7>
lea    0x20(%rsp),%r13
mov    %ebx,%edi
mov    %r15,%rsi
call   1070 <ungetc@plt>
movb   $0x0,0x0(%r13)
lea    0x20(%rsp),%r15
lea    0x10(%rsp),%rsi
mov    %r15,%rdi
call   1060 <NpyOS_ascii_strtod@plt>
movsd  %xmm0,0x0(%rbp)
xor    %ebx,%ebx
cmp    0x10(%rsp),%r15
setne  %bl
mov    %ebx,%eax
add    $0xa8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
lea    0x20(%rsp),%r13
jmp    121a <NpyOS_ascii_ftolf+0xba>
lea    0x21(%rsp),%r13
mov    %bl,0x20(%rsp)
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
mov    %ebx,%eax
and    $0xffffffdf,%eax
cmp    $0x49,%eax
je     1382 <NpyOS_ascii_ftolf+0x222>
cmp    $0x4e,%eax
jne    140e <NpyOS_ascii_ftolf+0x2ae>
cmp    (%r14),%ebx
je     11bc <NpyOS_ascii_ftolf+0x5c>
lea    0x98(%rsp),%r12
cmp    %r12,%r13
jae    11bc <NpyOS_ascii_ftolf+0x5c>
mov    %bl,0x0(%r13)
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
add    $0x1,%r13
lea    0xda0(%rip),%rax
mov    %rax,0x10(%rsp)
mov    $0x61,%eax
nopw   0x0(%rax,%rax,1)
cmp    %eax,%ebx
je     127f <NpyOS_ascii_ftolf+0x11f>
lea    0x20(%rbx),%ecx
cmp    %eax,%ecx
jne    11bc <NpyOS_ascii_ftolf+0x5c>
cmp    (%r14),%ebx
je     11bc <NpyOS_ascii_ftolf+0x5c>
cmp    %r12,%r13
jae    11bc <NpyOS_ascii_ftolf+0x5c>
mov    %bl,0x0(%r13)
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
add    $0x1,%r13
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%eax
test   %eax,%eax
jne    1270 <NpyOS_ascii_ftolf+0x110>
cmp    $0x28,%ebx
jne    11bc <NpyOS_ascii_ftolf+0x5c>
cmpl   $0x28,(%r14)
mov    $0x28,%ebx
je     11bc <NpyOS_ascii_ftolf+0x5c>
cmp    %r12,%r13
jae    11bc <NpyOS_ascii_ftolf+0x5c>
movb   $0x28,0x0(%r13)
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
lea    0x1(%r13),%rax
mov    %rax,0x8(%rsp)
mov    %ebx,%edi
call   1050 <NpyOS_ascii_isalnum@plt>
cmp    $0x5f,%ebx
je     1303 <NpyOS_ascii_ftolf+0x1a3>
test   %rax,%rax
je     1346 <NpyOS_ascii_ftolf+0x1e6>
mov    0x8(%rsp),%r13
cmp    (%r14),%ebx
je     11bc <NpyOS_ascii_ftolf+0x5c>
cmp    %r12,%r13
jae    11bc <NpyOS_ascii_ftolf+0x5c>
mov    %bl,0x0(%r13)
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
add    $0x1,%r13
mov    %eax,%edi
call   1050 <NpyOS_ascii_isalnum@plt>
cmp    $0x5f,%ebx
je     1308 <NpyOS_ascii_ftolf+0x1a8>
test   %rax,%rax
jne    1308 <NpyOS_ascii_ftolf+0x1a8>
mov    %r13,0x8(%rsp)
add    $0xffffffffffffffff,%r13
cmp    $0x29,%ebx
jne    15be <NpyOS_ascii_ftolf+0x45e>
cmpl   $0x29,(%r14)
mov    $0x29,%ebx
je     15be <NpyOS_ascii_ftolf+0x45e>
mov    0x8(%rsp),%rax
cmp    %r12,%rax
jae    15c8 <NpyOS_ascii_ftolf+0x468>
add    $0x2,%r13
movb   $0x29,(%rax)
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
jmp    11bc <NpyOS_ascii_ftolf+0x5c>
cmp    (%r14),%ebx
je     11bc <NpyOS_ascii_ftolf+0x5c>
lea    0x98(%rsp),%r12
cmp    %r12,%r13
jae    11bc <NpyOS_ascii_ftolf+0x5c>
mov    %bl,0x0(%r13)
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
add    $0x1,%r13
lea    0xc4e(%rip),%rax
mov    %rax,0x10(%rsp)
mov    $0x6e,%eax
nop
cmp    %eax,%ebx
je     13cf <NpyOS_ascii_ftolf+0x26f>
lea    0x20(%rbx),%ecx
cmp    %eax,%ecx
jne    11bc <NpyOS_ascii_ftolf+0x5c>
cmp    (%r14),%ebx
je     11bc <NpyOS_ascii_ftolf+0x5c>
cmp    %r12,%r13
jae    11bc <NpyOS_ascii_ftolf+0x5c>
mov    %bl,0x0(%r13)
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
add    $0x1,%r13
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%eax
test   %eax,%eax
jne    13c0 <NpyOS_ascii_ftolf+0x260>
jmp    11bc <NpyOS_ascii_ftolf+0x5c>
mov    %rbp,0x8(%rsp)
mov    %ebx,%edi
call   1040 <NpyOS_ascii_isdigit@plt>
test   %rax,%rax
je     1460 <NpyOS_ascii_ftolf+0x300>
lea    0x98(%rsp),%rbp
nopw   0x0(%rax,%rax,1)
cmp    (%r14),%ebx
je     155a <NpyOS_ascii_ftolf+0x3fa>
cmp    %rbp,%r13
jae    155a <NpyOS_ascii_ftolf+0x3fa>
mov    %bl,0x0(%r13)
add    $0x1,%r13
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
mov    %eax,%edi
call   1040 <NpyOS_ascii_isdigit@plt>
test   %rax,%rax
jne    1430 <NpyOS_ascii_ftolf+0x2d0>
cmp    $0x2e,%ebx
jne    14f3 <NpyOS_ascii_ftolf+0x393>
cmpl   $0x2e,(%r14)
mov    $0x2e,%ebx
mov    0x8(%rsp),%rbp
je     11bc <NpyOS_ascii_ftolf+0x5c>
lea    0x98(%rsp),%r12
cmp    %r12,%r13
jae    11bc <NpyOS_ascii_ftolf+0x5c>
movb   $0x2e,0x0(%r13)
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
add    $0x1,%r13
mov    %eax,%edi
call   1040 <NpyOS_ascii_isdigit@plt>
mov    %rax,0x18(%rsp)
test   %rax,%rax
je     11bc <NpyOS_ascii_ftolf+0x5c>
cmp    (%r14),%ebx
je     11bc <NpyOS_ascii_ftolf+0x5c>
cmp    %r12,%r13
jae    11bc <NpyOS_ascii_ftolf+0x5c>
mov    %bl,0x0(%r13)
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
add    $0x1,%r13
mov    %eax,%edi
call   1040 <NpyOS_ascii_isdigit@plt>
test   %rax,%rax
jne    14b6 <NpyOS_ascii_ftolf+0x356>
cmpq   $0x0,0x18(%rsp)
jne    14f8 <NpyOS_ascii_ftolf+0x398>
jmp    11bc <NpyOS_ascii_ftolf+0x5c>
mov    0x8(%rsp),%rbp
mov    %ebx,%eax
and    $0xffffffdf,%eax
cmp    $0x45,%eax
jne    11bc <NpyOS_ascii_ftolf+0x5c>
cmp    (%r14),%ebx
je     11bc <NpyOS_ascii_ftolf+0x5c>
lea    0x98(%rsp),%r12
cmp    %r12,%r13
jae    11bc <NpyOS_ascii_ftolf+0x5c>
lea    0x1(%r13),%rbp
mov    %bl,0x0(%r13)
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
cmp    $0x2d,%eax
je     153c <NpyOS_ascii_ftolf+0x3dc>
cmp    $0x2b,%ebx
jne    1564 <NpyOS_ascii_ftolf+0x404>
cmp    (%r14),%ebx
je     15b1 <NpyOS_ascii_ftolf+0x451>
cmp    %r12,%rbp
jae    15b1 <NpyOS_ascii_ftolf+0x451>
mov    %bl,0x1(%r13)
add    $0x2,%r13
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
jmp    1567 <NpyOS_ascii_ftolf+0x407>
mov    0x8(%rsp),%rbp
jmp    11bc <NpyOS_ascii_ftolf+0x5c>
mov    %rbp,%r13
mov    %ebx,%edi
call   1040 <NpyOS_ascii_isdigit@plt>
test   %rax,%rax
mov    0x8(%rsp),%rbp
je     11bc <NpyOS_ascii_ftolf+0x5c>
cmp    (%r14),%ebx
je     11bc <NpyOS_ascii_ftolf+0x5c>
cmp    %r12,%r13
jae    11bc <NpyOS_ascii_ftolf+0x5c>
mov    %bl,0x0(%r13)
add    $0x1,%r13
mov    %r15,%rdi
call   1080 <getc@plt>
mov    %eax,%ebx
mov    %eax,%edi
call   1040 <NpyOS_ascii_isdigit@plt>
test   %rax,%rax
jne    157c <NpyOS_ascii_ftolf+0x41c>
jmp    11bc <NpyOS_ascii_ftolf+0x5c>
mov    %rbp,%r13
mov    0x8(%rsp),%rbp
jmp    11bc <NpyOS_ascii_ftolf+0x5c>
mov    0x8(%rsp),%r13
jmp    11bc <NpyOS_ascii_ftolf+0x5c>
mov    %rax,%r13
jmp    11bc <NpyOS_ascii_ftolf+0x5c>

LLVM IR (-O0):
@EOF = global i32 0
@.str = [3 x i8] c"an\00"
@.str.1 = [8 x i8] c"nfinity\00"
define i32 @NpyOS_ascii_ftolf(i32* %0, double* %1) {
%3 = alloca i32
%4 = alloca i32*
%5 = alloca double*
%6 = alloca [121 x i8]
%7 = alloca i8*
%8 = alloca i8*
%9 = alloca i32
%10 = alloca i32
store i32* %0, i32** %4
store double* %1, double** %5
%11 = load i32*, i32** %4
%12 = call i32 @getc(i32* %11)
store i32 %12, i32* %9
%13 = load i32, i32* %9
%14 = load i32, i32* @EOF
%15 = icmp eq i32 %13, %14
br i1 %15, label %16, label %18
16: ; preds = %2
%17 = load i32, i32* @EOF
store i32 %17, i32* %3
br label %456
18: ; preds = %2
br label %19
19: ; preds = %23, %18
%20 = load i32, i32* %9
%21 = call i64 @NpyOS_ascii_isspace(i32 %20)
%22 = icmp ne i64 %21, 0
br i1 %22, label %23, label %26
23: ; preds = %19
%24 = load i32*, i32** %4
%25 = call i32 @getc(i32* %24)
store i32 %25, i32* %9
br label %19
26: ; preds = %19
%27 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
store i8* %27, i8** %7
br label %28
28: ; preds = %26
%29 = load i32, i32* %9
%30 = icmp eq i32 %29, 43
br i1 %30, label %34, label %31
31: ; preds = %28
%32 = load i32, i32* %9
%33 = icmp eq i32 %32, 45
br i1 %33, label %34, label %53
34: ; preds = %31, %28
br label %35
35: ; preds = %34
%36 = load i32, i32* %9
%37 = load i32, i32* @EOF
%38 = icmp eq i32 %36, %37
br i1 %38, label %44, label %39
39: ; preds = %35
%40 = load i8*, i8** %7
%41 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%42 = getelementptr inbounds i8, i8* %41, i64 120
%43 = icmp uge i8* %40, %42
br i1 %43, label %44, label %45
44: ; preds = %39, %35
br label %443
45: ; preds = %39
%46 = load i32, i32* %9
%47 = trunc i32 %46 to i8
%48 = load i8*, i8** %7
%49 = getelementptr inbounds i8, i8* %48, i32 1
store i8* %49, i8** %7
store i8 %47, i8* %48
%50 = load i32*, i32** %4
%51 = call i32 @getc(i32* %50)
store i32 %51, i32* %9
br label %52
52: ; preds = %45
br label %53
53: ; preds = %52, %31
br label %54
54: ; preds = %53
%55 = load i32, i32* %9
%56 = icmp eq i32 %55, 110
br i1 %56, label %60, label %57
57: ; preds = %54
%58 = load i32, i32* %9
%59 = icmp eq i32 %58, 78
br i1 %59, label %60, label %205
60: ; preds = %57, %54
br label %61
61: ; preds = %60
%62 = load i32, i32* %9
%63 = load i32, i32* @EOF
%64 = icmp eq i32 %62, %63
br i1 %64, label %70, label %65
65: ; preds = %61
%66 = load i8*, i8** %7
%67 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%68 = getelementptr inbounds i8, i8* %67, i64 120
%69 = icmp uge i8* %66, %68
br i1 %69, label %70, label %71
70: ; preds = %65, %61
br label %443
71: ; preds = %65
%72 = load i32, i32* %9
%73 = trunc i32 %72 to i8
%74 = load i8*, i8** %7
%75 = getelementptr inbounds i8, i8* %74, i32 1
store i8* %75, i8** %7
store i8 %73, i8* %74
%76 = load i32*, i32** %4
%77 = call i32 @getc(i32* %76)
store i32 %77, i32* %9
br label %78
78: ; preds = %71
br label %79
79: ; preds = %78
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8** %8
br label %80
80: ; preds = %121, %79
%81 = load i8*, i8** %8
%82 = load i8, i8* %81
%83 = sext i8 %82 to i32
%84 = icmp ne i32 %83, 0
br i1 %84, label %85, label %100
85: ; preds = %80
%86 = load i32, i32* %9
%87 = load i8*, i8** %8
%88 = load i8, i8* %87
%89 = sext i8 %88 to i32
%90 = icmp eq i32 %86, %89
br i1 %90, label %98, label %91
91: ; preds = %85
%92 = load i32, i32* %9
%93 = add nsw i32 %92, 32
%94 = load i8*, i8** %8
%95 = load i8, i8* %94
%96 = sext i8 %95 to i32
%97 = icmp eq i32 %93, %96
br label %98
98: ; preds = %91, %85
%99 = phi i1 [ true, %85 ], [ %97, %91 ]
br label %100
100: ; preds = %98, %80
%101 = phi i1 [ false, %80 ], [ %99, %98 ]
br i1 %101, label %102, label %124
102: ; preds = %100
br label %103
103: ; preds = %102
%104 = load i32, i32* %9
%105 = load i32, i32* @EOF
%106 = icmp eq i32 %104, %105
br i1 %106, label %112, label %107
107: ; preds = %103
%108 = load i8*, i8** %7
%109 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%110 = getelementptr inbounds i8, i8* %109, i64 120
%111 = icmp uge i8* %108, %110
br i1 %111, label %112, label %113
112: ; preds = %107, %103
br label %443
113: ; preds = %107
%114 = load i32, i32* %9
%115 = trunc i32 %114 to i8
%116 = load i8*, i8** %7
%117 = getelementptr inbounds i8, i8* %116, i32 1
store i8* %117, i8** %7
store i8 %115, i8* %116
%118 = load i32*, i32** %4
%119 = call i32 @getc(i32* %118)
store i32 %119, i32* %9
br label %120
120: ; preds = %113
br label %121
121: ; preds = %120
%122 = load i8*, i8** %8
%123 = getelementptr inbounds i8, i8* %122, i32 1
store i8* %123, i8** %8
br label %80
124: ; preds = %100
%125 = load i8*, i8** %8
%126 = load i8, i8* %125
%127 = sext i8 %126 to i32
%128 = icmp ne i32 %127, 0
br i1 %128, label %129, label %130
129: ; preds = %124
br label %443
130: ; preds = %124
br label %131
131: ; preds = %130
%132 = load i32, i32* %9
%133 = icmp eq i32 %132, 40
br i1 %133, label %134, label %204
134: ; preds = %131
br label %135
135: ; preds = %134
%136 = load i32, i32* %9
%137 = load i32, i32* @EOF
%138 = icmp eq i32 %136, %137
br i1 %138, label %144, label %139
139: ; preds = %135
%140 = load i8*, i8** %7
%141 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%142 = getelementptr inbounds i8, i8* %141, i64 120
%143 = icmp uge i8* %140, %142
br i1 %143, label %144, label %145
144: ; preds = %139, %135
br label %443
145: ; preds = %139
%146 = load i32, i32* %9
%147 = trunc i32 %146 to i8
%148 = load i8*, i8** %7
%149 = getelementptr inbounds i8, i8* %148, i32 1
store i8* %149, i8** %7
store i8 %147, i8* %148
%150 = load i32*, i32** %4
%151 = call i32 @getc(i32* %150)
store i32 %151, i32* %9
br label %152
152: ; preds = %145
br label %153
153: ; preds = %180, %152
%154 = load i32, i32* %9
%155 = call i64 @NpyOS_ascii_isalnum(i32 %154)
%156 = icmp ne i64 %155, 0
br i1 %156, label %160, label %157
157: ; preds = %153
%158 = load i32, i32* %9
%159 = icmp eq i32 %158, 95
br label %160
160: ; preds = %157, %153
%161 = phi i1 [ true, %153 ], [ %159, %157 ]
br i1 %161, label %162, label %181
162: ; preds = %160
br label %163
163: ; preds = %162
%164 = load i32, i32* %9
%165 = load i32, i32* @EOF
%166 = icmp eq i32 %164, %165
br i1 %166, label %172, label %167
167: ; preds = %163
%168 = load i8*, i8** %7
%169 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%170 = getelementptr inbounds i8, i8* %169, i64 120
%171 = icmp uge i8* %168, %170
br i1 %171, label %172, label %173
172: ; preds = %167, %163
br label %443
173: ; preds = %167
%174 = load i32, i32* %9
%175 = trunc i32 %174 to i8
%176 = load i8*, i8** %7
%177 = getelementptr inbounds i8, i8* %176, i32 1
store i8* %177, i8** %7
store i8 %175, i8* %176
%178 = load i32*, i32** %4
%179 = call i32 @getc(i32* %178)
store i32 %179, i32* %9
br label %180
180: ; preds = %173
br label %153
181: ; preds = %160
%182 = load i32, i32* %9
%183 = icmp eq i32 %182, 41
br i1 %183, label %184, label %203
184: ; preds = %181
br label %185
185: ; preds = %184
%186 = load i32, i32* %9
%187 = load i32, i32* @EOF
%188 = icmp eq i32 %186, %187
br i1 %188, label %194, label %189
189: ; preds = %185
%190 = load i8*, i8** %7
%191 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%192 = getelementptr inbounds i8, i8* %191, i64 120
%193 = icmp uge i8* %190, %192
br i1 %193, label %194, label %195
194: ; preds = %189, %185
br label %443
195: ; preds = %189
%196 = load i32, i32* %9
%197 = trunc i32 %196 to i8
%198 = load i8*, i8** %7
%199 = getelementptr inbounds i8, i8* %198, i32 1
store i8* %199, i8** %7
store i8 %197, i8* %198
%200 = load i32*, i32** %4
%201 = call i32 @getc(i32* %200)
store i32 %201, i32* %9
br label %202
202: ; preds = %195
br label %203
203: ; preds = %202, %181
br label %204
204: ; preds = %203, %131
br label %443
205: ; preds = %57
%206 = load i32, i32* %9
%207 = icmp eq i32 %206, 105
br i1 %207, label %211, label %208
208: ; preds = %205
%209 = load i32, i32* %9
%210 = icmp eq i32 %209, 73
br i1 %210, label %211, label %283
211: ; preds = %208, %205
br label %212
212: ; preds = %211
%213 = load i32, i32* %9
%214 = load i32, i32* @EOF
%215 = icmp eq i32 %213, %214
br i1 %215, label %221, label %216
216: ; preds = %212
%217 = load i8*, i8** %7
%218 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%219 = getelementptr inbounds i8, i8* %218, i64 120
%220 = icmp uge i8* %217, %219
br i1 %220, label %221, label %222
221: ; preds = %216, %212
br label %443
222: ; preds = %216
%223 = load i32, i32* %9
%224 = trunc i32 %223 to i8
%225 = load i8*, i8** %7
%226 = getelementptr inbounds i8, i8* %225, i32 1
store i8* %226, i8** %7
store i8 %224, i8* %225
%227 = load i32*, i32** %4
%228 = call i32 @getc(i32* %227)
store i32 %228, i32* %9
br label %229
229: ; preds = %222
br label %230
230: ; preds = %229
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i8** %8
br label %231
231: ; preds = %272, %230
%232 = load i8*, i8** %8
%233 = load i8, i8* %232
%234 = sext i8 %233 to i32
%235 = icmp ne i32 %234, 0
br i1 %235, label %236, label %251
236: ; preds = %231
%237 = load i32, i32* %9
%238 = load i8*, i8** %8
%239 = load i8, i8* %238
%240 = sext i8 %239 to i32
%241 = icmp eq i32 %237, %240
br i1 %241, label %249, label %242
242: ; preds = %236
%243 = load i32, i32* %9
%244 = add nsw i32 %243, 32
%245 = load i8*, i8** %8
%246 = load i8, i8* %245
%247 = sext i8 %246 to i32
%248 = icmp eq i32 %244, %247
br label %249
249: ; preds = %242, %236
%250 = phi i1 [ true, %236 ], [ %248, %242 ]
br label %251
251: ; preds = %249, %231
%252 = phi i1 [ false, %231 ], [ %250, %249 ]
br i1 %252, label %253, label %275
253: ; preds = %251
br label %254
254: ; preds = %253
%255 = load i32, i32* %9
%256 = load i32, i32* @EOF
%257 = icmp eq i32 %255, %256
br i1 %257, label %263, label %258
258: ; preds = %254
%259 = load i8*, i8** %7
%260 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%261 = getelementptr inbounds i8, i8* %260, i64 120
%262 = icmp uge i8* %259, %261
br i1 %262, label %263, label %264
263: ; preds = %258, %254
br label %443
264: ; preds = %258
%265 = load i32, i32* %9
%266 = trunc i32 %265 to i8
%267 = load i8*, i8** %7
%268 = getelementptr inbounds i8, i8* %267, i32 1
store i8* %268, i8** %7
store i8 %266, i8* %267
%269 = load i32*, i32** %4
%270 = call i32 @getc(i32* %269)
store i32 %270, i32* %9
br label %271
271: ; preds = %264
br label %272
272: ; preds = %271
%273 = load i8*, i8** %8
%274 = getelementptr inbounds i8, i8* %273, i32 1
store i8* %274, i8** %8
br label %231
275: ; preds = %251
%276 = load i8*, i8** %8
%277 = load i8, i8* %276
%278 = sext i8 %277 to i32
%279 = icmp ne i32 %278, 0
br i1 %279, label %280, label %281
280: ; preds = %275
br label %443
281: ; preds = %275
br label %282
282: ; preds = %281
br label %443
283: ; preds = %208
br label %284
284: ; preds = %283
br label %285
285: ; preds = %307, %284
%286 = load i32, i32* %9
%287 = call i64 @NpyOS_ascii_isdigit(i32 %286)
%288 = icmp ne i64 %287, 0
br i1 %288, label %289, label %308
289: ; preds = %285
br label %290
290: ; preds = %289
%291 = load i32, i32* %9
%292 = load i32, i32* @EOF
%293 = icmp eq i32 %291, %292
br i1 %293, label %299, label %294
294: ; preds = %290
%295 = load i8*, i8** %7
%296 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%297 = getelementptr inbounds i8, i8* %296, i64 120
%298 = icmp uge i8* %295, %297
br i1 %298, label %299, label %300
299: ; preds = %294, %290
br label %443
300: ; preds = %294
%301 = load i32, i32* %9
%302 = trunc i32 %301 to i8
%303 = load i8*, i8** %7
%304 = getelementptr inbounds i8, i8* %303, i32 1
store i8* %304, i8** %7
store i8 %302, i8* %303
%305 = load i32*, i32** %4
%306 = call i32 @getc(i32* %305)
store i32 %306, i32* %9
br label %307
307: ; preds = %300
br label %285
308: ; preds = %285
%309 = load i32, i32* %9
%310 = icmp eq i32 %309, 46
br i1 %310, label %311, label %360
311: ; preds = %308
br label %312
312: ; preds = %311
%313 = load i32, i32* %9
%314 = load i32, i32* @EOF
%315 = icmp eq i32 %313, %314
br i1 %315, label %321, label %316
316: ; preds = %312
%317 = load i8*, i8** %7
%318 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%319 = getelementptr inbounds i8, i8* %318, i64 120
%320 = icmp uge i8* %317, %319
br i1 %320, label %321, label %322
321: ; preds = %316, %312
br label %443
322: ; preds = %316
%323 = load i32, i32* %9
%324 = trunc i32 %323 to i8
%325 = load i8*, i8** %7
%326 = getelementptr inbounds i8, i8* %325, i32 1
store i8* %326, i8** %7
store i8 %324, i8* %325
%327 = load i32*, i32** %4
%328 = call i32 @getc(i32* %327)
store i32 %328, i32* %9
br label %329
329: ; preds = %322
br label %330
330: ; preds = %329
store i32 0, i32* %10
br label %331
331: ; preds = %353, %330
%332 = load i32, i32* %9
%333 = call i64 @NpyOS_ascii_isdigit(i32 %332)
%334 = icmp ne i64 %333, 0
br i1 %334, label %335, label %354
335: ; preds = %331
br label %336
336: ; preds = %335
%337 = load i32, i32* %9
%338 = load i32, i32* @EOF
%339 = icmp eq i32 %337, %338
br i1 %339, label %345, label %340
340: ; preds = %336
%341 = load i8*, i8** %7
%342 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%343 = getelementptr inbounds i8, i8* %342, i64 120
%344 = icmp uge i8* %341, %343
br i1 %344, label %345, label %346
345: ; preds = %340, %336
br label %443
346: ; preds = %340
%347 = load i32, i32* %9
%348 = trunc i32 %347 to i8
%349 = load i8*, i8** %7
%350 = getelementptr inbounds i8, i8* %349, i32 1
store i8* %350, i8** %7
store i8 %348, i8* %349
%351 = load i32*, i32** %4
%352 = call i32 @getc(i32* %351)
store i32 %352, i32* %9
br label %353
353: ; preds = %346
store i32 1, i32* %10
br label %331
354: ; preds = %331
%355 = load i32, i32* %10
%356 = icmp ne i32 %355, 0
br i1 %356, label %358, label %357
357: ; preds = %354
br label %443
358: ; preds = %354
br label %359
359: ; preds = %358
br label %360
360: ; preds = %359, %308
%361 = load i32, i32* %9
%362 = icmp eq i32 %361, 101
br i1 %362, label %366, label %363
363: ; preds = %360
%364 = load i32, i32* %9
%365 = icmp eq i32 %364, 69
br i1 %365, label %366, label %442
366: ; preds = %363, %360
br label %367
367: ; preds = %366
%368 = load i32, i32* %9
%369 = load i32, i32* @EOF
%370 = icmp eq i32 %368, %369
br i1 %370, label %376, label %371
371: ; preds = %367
%372 = load i8*, i8** %7
%373 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%374 = getelementptr inbounds i8, i8* %373, i64 120
%375 = icmp uge i8* %372, %374
br i1 %375, label %376, label %377
376: ; preds = %371, %367
br label %443
377: ; preds = %371
%378 = load i32, i32* %9
%379 = trunc i32 %378 to i8
%380 = load i8*, i8** %7
%381 = getelementptr inbounds i8, i8* %380, i32 1
store i8* %381, i8** %7
store i8 %379, i8* %380
%382 = load i32*, i32** %4
%383 = call i32 @getc(i32* %382)
store i32 %383, i32* %9
br label %384
384: ; preds = %377
br label %385
385: ; preds = %384
%386 = load i32, i32* %9
%387 = icmp eq i32 %386, 43
br i1 %387, label %391, label %388
388: ; preds = %385
%389 = load i32, i32* %9
%390 = icmp eq i32 %389, 45
br i1 %390, label %391, label %410
391: ; preds = %388, %385
br label %392
392: ; preds = %391
%393 = load i32, i32* %9
%394 = load i32, i32* @EOF
%395 = icmp eq i32 %393, %394
br i1 %395, label %401, label %396
396: ; preds = %392
%397 = load i8*, i8** %7
%398 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%399 = getelementptr inbounds i8, i8* %398, i64 120
%400 = icmp uge i8* %397, %399
br i1 %400, label %401, label %402
401: ; preds = %396, %392
br label %443
402: ; preds = %396
%403 = load i32, i32* %9
%404 = trunc i32 %403 to i8
%405 = load i8*, i8** %7
%406 = getelementptr inbounds i8, i8* %405, i32 1
store i8* %406, i8** %7
store i8 %404, i8* %405
%407 = load i32*, i32** %4
%408 = call i32 @getc(i32* %407)
store i32 %408, i32* %9
br label %409
409: ; preds = %402
br label %410
410: ; preds = %409, %388
br label %411
411: ; preds = %410
br label %412
412: ; preds = %411
store i32 0, i32* %10
br label %413
413: ; preds = %435, %412
%414 = load i32, i32* %9
%415 = call i64 @NpyOS_ascii_isdigit(i32 %414)
%416 = icmp ne i64 %415, 0
br i1 %416, label %417, label %436
417: ; preds = %413
br label %418
418: ; preds = %417
%419 = load i32, i32* %9
%420 = load i32, i32* @EOF
%421 = icmp eq i32 %419, %420
br i1 %421, label %427, label %422
422: ; preds = %418
%423 = load i8*, i8** %7
%424 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%425 = getelementptr inbounds i8, i8* %424, i64 120
%426 = icmp uge i8* %423, %425
br i1 %426, label %427, label %428
427: ; preds = %422, %418
br label %443
428: ; preds = %422
%429 = load i32, i32* %9
%430 = trunc i32 %429 to i8
%431 = load i8*, i8** %7
%432 = getelementptr inbounds i8, i8* %431, i32 1
store i8* %432, i8** %7
store i8 %430, i8* %431
%433 = load i32*, i32** %4
%434 = call i32 @getc(i32* %433)
store i32 %434, i32* %9
br label %435
435: ; preds = %428
store i32 1, i32* %10
br label %413
436: ; preds = %413
%437 = load i32, i32* %10
%438 = icmp ne i32 %437, 0
br i1 %438, label %440, label %439
439: ; preds = %436
br label %443
440: ; preds = %436
br label %441
441: ; preds = %440
br label %442
442: ; preds = %441, %363
br label %443
443: ; preds = %442, %439, %427, %401, %376, %357, %345, %321, %299, %282, %280, %263, %221, %204, %194, %172, %144, %129, %112, %70, %44
%444 = load i32, i32* %9
%445 = load i32*, i32** %4
%446 = call i32 @ungetc(i32 %444, i32* %445)
%447 = load i8*, i8** %7
store i8 0, i8* %447
%448 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%449 = call double @NpyOS_ascii_strtod(i8* %448, i8** %8)
%450 = load double*, double** %5
store double %449, double* %450
%451 = getelementptr inbounds [121 x i8], [121 x i8]* %6, i64 0, i64 0
%452 = load i8*, i8** %8
%453 = icmp eq i8* %451, %452
%454 = zext i1 %453 to i64
%455 = select i1 %453, i32 0, i32 1
store i32 %455, i32* %3
br label %456
456: ; preds = %443, %16
%457 = load i32, i32* %3
ret i32 %457
}

LLVM IR (-O2):
@EOF = global i32 0
@.str = [3 x i8] c"an\00"
@.str.1 = [8 x i8] c"nfinity\00"
define i32 @NpyOS_ascii_ftolf(i32* nocapture %0, double* nocapture writeonly %1) {
%3 = alloca [121 x i8]
%4 = alloca i8*
%5 = getelementptr inbounds [121 x i8], [121 x i8]* %3, i64 0, i64 0
%6 = bitcast i8** %4 to i8*
%7 = tail call i32 @getc(i32* %0)
%8 = load i32, i32* @EOF
%9 = icmp eq i32 %7, %8
br i1 %9, label %233, label %10
10: ; preds = %2
%11 = tail call i64 @NpyOS_ascii_isspace(i32 %7)
%12 = icmp eq i64 %11, 0
br i1 %12, label %17, label %13
13: ; preds = %10, %13
%14 = tail call i32 @getc(i32* %0)
%15 = tail call i64 @NpyOS_ascii_isspace(i32 %14)
%16 = icmp eq i64 %15, 0
br i1 %16, label %17, label %13
17: ; preds = %13, %10
%18 = phi i32 [ %7, %10 ], [ %14, %13 ]
switch i32 %18, label %26 [
i32 45, label %19
i32 43, label %19
]
19: ; preds = %17, %17
%20 = load i32, i32* @EOF
%21 = icmp eq i32 %18, %20
br i1 %21, label %225, label %22
22: ; preds = %19
%23 = trunc i32 %18 to i8
%24 = getelementptr inbounds [121 x i8], [121 x i8]* %3, i64 0, i64 1
store i8 %23, i8* %5
%25 = tail call i32 @getc(i32* %0)
br label %26
26: ; preds = %17, %22
%27 = phi i8* [ %24, %22 ], [ %5, %17 ]
%28 = phi i32 [ %25, %22 ], [ %18, %17 ]
%29 = and i32 %28, -33
switch i32 %29, label %30 [
i32 78, label %35
i32 73, label %109
]
30: ; preds = %26
%31 = call i64 @NpyOS_ascii_isdigit(i32 %28)
%32 = icmp eq i64 %31, 0
br i1 %32, label %154, label %33
33: ; preds = %30
%34 = getelementptr inbounds [121 x i8], [121 x i8]* %3, i64 0, i64 120
br label %141
35: ; preds = %26
%36 = load i32, i32* @EOF
%37 = icmp eq i32 %28, %36
%38 = getelementptr inbounds [121 x i8], [121 x i8]* %3, i64 0, i64 120
%39 = icmp uge i8* %27, %38
%40 = select i1 %37, i1 true, i1 %39
br i1 %40, label %225, label %41
41: ; preds = %35
%42 = trunc i32 %28 to i8
store i8 %42, i8* %27
%43 = call i32 @getc(i32* %0)
%44 = getelementptr inbounds i8, i8* %27, i64 1
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8** %4
br label %45
45: ; preds = %41, %58
%46 = phi i32 [ 97, %41 ], [ %65, %58 ]
%47 = phi i8* [ %44, %41 ], [ %63, %58 ]
%48 = phi i32 [ %43, %41 ], [ %60, %58 ]
%49 = icmp eq i32 %48, %46
%50 = add nsw i32 %48, 32
%51 = icmp eq i32 %50, %46
%52 = select i1 %49, i1 true, i1 %51
br i1 %52, label %53, label %225
53: ; preds = %45
%54 = load i32, i32* @EOF
%55 = icmp eq i32 %48, %54
%56 = icmp uge i8* %47, %38
%57 = select i1 %55, i1 true, i1 %56
br i1 %57, label %225, label %58
58: ; preds = %53
%59 = trunc i32 %48 to i8
store i8 %59, i8* %47
%60 = call i32 @getc(i32* %0)
%61 = load i8*, i8** %4
%62 = getelementptr inbounds i8, i8* %61, i64 1
%63 = getelementptr inbounds i8, i8* %47, i64 1
store i8* %62, i8** %4
%64 = load i8, i8* %62
%65 = sext i8 %64 to i32
%66 = icmp eq i8 %64, 0
br i1 %66, label %67, label %45
67: ; preds = %58
%68 = icmp eq i32 %60, 40
br i1 %68, label %69, label %225
69: ; preds = %67
%70 = load i32, i32* @EOF
%71 = icmp eq i32 %70, 40
%72 = icmp uge i8* %63, %38
%73 = select i1 %71, i1 true, i1 %72
br i1 %73, label %225, label %74
74: ; preds = %69
store i8 40, i8* %63
%75 = call i32 @getc(i32* %0)
%76 = getelementptr inbounds i8, i8* %47, i64 2
%77 = call i64 @NpyOS_ascii_isalnum(i32 %75)
%78 = icmp ne i64 %77, 0
%79 = icmp eq i32 %75, 95
%80 = or i1 %79, %78
br i1 %80, label %81, label %96
81: ; preds = %74, %88
%82 = phi i8* [ %91, %88 ], [ %76, %74 ]
%83 = phi i32 [ %90, %88 ], [ %75, %74 ]
%84 = load i32, i32* @EOF
%85 = icmp eq i32 %83, %84
%86 = icmp uge i8* %82, %38
%87 = select i1 %85, i1 true, i1 %86
br i1 %87, label %225, label %88
88: ; preds = %81
%89 = trunc i32 %83 to i8
store i8 %89, i8* %82
%90 = call i32 @getc(i32* %0)
%91 = getelementptr inbounds i8, i8* %82, i64 1
%92 = call i64 @NpyOS_ascii_isalnum(i32 %90)
%93 = icmp ne i64 %92, 0
%94 = icmp eq i32 %90, 95
%95 = or i1 %94, %93
br i1 %95, label %81, label %96
96: ; preds = %88, %74
%97 = phi i8* [ %63, %74 ], [ %82, %88 ]
%98 = phi i32 [ %75, %74 ], [ %90, %88 ]
%99 = phi i8* [ %76, %74 ], [ %91, %88 ]
%100 = icmp eq i32 %98, 41
br i1 %100, label %101, label %225
101: ; preds = %96
%102 = load i32, i32* @EOF
%103 = icmp eq i32 %102, 41
%104 = icmp uge i8* %99, %38
%105 = select i1 %103, i1 true, i1 %104
br i1 %105, label %225, label %106
106: ; preds = %101
%107 = getelementptr inbounds i8, i8* %97, i64 2
store i8 41, i8* %99
%108 = call i32 @getc(i32* %0)
br label %225
109: ; preds = %26
%110 = load i32, i32* @EOF
%111 = icmp eq i32 %28, %110
%112 = getelementptr inbounds [121 x i8], [121 x i8]* %3, i64 0, i64 120
%113 = icmp uge i8* %27, %112
%114 = select i1 %111, i1 true, i1 %113
br i1 %114, label %225, label %115
115: ; preds = %109
%116 = trunc i32 %28 to i8
store i8 %116, i8* %27
%117 = call i32 @getc(i32* %0)
%118 = getelementptr inbounds i8, i8* %27, i64 1
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i8** %4
br label %119
119: ; preds = %115, %132
%120 = phi i32 [ 110, %115 ], [ %139, %132 ]
%121 = phi i8* [ %118, %115 ], [ %137, %132 ]
%122 = phi i32 [ %117, %115 ], [ %134, %132 ]
%123 = icmp eq i32 %122, %120
%124 = add nsw i32 %122, 32
%125 = icmp eq i32 %124, %120
%126 = select i1 %123, i1 true, i1 %125
br i1 %126, label %127, label %225
127: ; preds = %119
%128 = load i32, i32* @EOF
%129 = icmp eq i32 %122, %128
%130 = icmp uge i8* %121, %112
%131 = select i1 %129, i1 true, i1 %130
br i1 %131, label %225, label %132
132: ; preds = %127
%133 = trunc i32 %122 to i8
store i8 %133, i8* %121
%134 = call i32 @getc(i32* %0)
%135 = load i8*, i8** %4
%136 = getelementptr inbounds i8, i8* %135, i64 1
%137 = getelementptr inbounds i8, i8* %121, i64 1
store i8* %136, i8** %4
%138 = load i8, i8* %136
%139 = sext i8 %138 to i32
%140 = icmp eq i8 %138, 0
br i1 %140, label %225, label %119
141: ; preds = %33, %148
%142 = phi i32 [ %28, %33 ], [ %151, %148 ]
%143 = phi i8* [ %27, %33 ], [ %150, %148 ]
%144 = load i32, i32* @EOF
%145 = icmp eq i32 %142, %144
%146 = icmp uge i8* %143, %34
%147 = select i1 %145, i1 true, i1 %146
br i1 %147, label %225, label %148
148: ; preds = %141
%149 = trunc i32 %142 to i8
%150 = getelementptr inbounds i8, i8* %143, i64 1
store i8 %149, i8* %143
%151 = call i32 @getc(i32* %0)
%152 = call i64 @NpyOS_ascii_isdigit(i32 %151)
%153 = icmp eq i64 %152, 0
br i1 %153, label %154, label %141
154: ; preds = %148, %30
%155 = phi i8* [ %27, %30 ], [ %150, %148 ]
%156 = phi i32 [ %28, %30 ], [ %151, %148 ]
%157 = icmp eq i32 %156, 46
br i1 %157, label %158, label %183
158: ; preds = %154
%159 = load i32, i32* @EOF
%160 = icmp eq i32 %159, 46
%161 = getelementptr inbounds [121 x i8], [121 x i8]* %3, i64 0, i64 120
%162 = icmp uge i8* %155, %161
%163 = select i1 %160, i1 true, i1 %162
br i1 %163, label %225, label %164
164: ; preds = %158
store i8 46, i8* %155
%165 = call i32 @getc(i32* %0)
%166 = getelementptr inbounds i8, i8* %155, i64 1
%167 = call i64 @NpyOS_ascii_isdigit(i32 %165)
%168 = icmp eq i64 %167, 0
br i1 %168, label %225, label %169
169: ; preds = %164, %176
%170 = phi i8* [ %179, %176 ], [ %166, %164 ]
%171 = phi i32 [ %178, %176 ], [ %165, %164 ]
%172 = load i32, i32* @EOF
%173 = icmp eq i32 %171, %172
%174 = icmp uge i8* %170, %161
%175 = select i1 %173, i1 true, i1 %174
br i1 %175, label %225, label %176
176: ; preds = %169
%177 = trunc i32 %171 to i8
store i8 %177, i8* %170
%178 = call i32 @getc(i32* %0)
%179 = getelementptr inbounds i8, i8* %170, i64 1
%180 = call i64 @NpyOS_ascii_isdigit(i32 %178)
%181 = icmp eq i64 %180, 0
br i1 %181, label %182, label %169
182: ; preds = %176
br i1 %168, label %225, label %183
183: ; preds = %182, %154
%184 = phi i8* [ %179, %182 ], [ %155, %154 ]
%185 = phi i32 [ %178, %182 ], [ %156, %154 ]
%186 = and i32 %185, -33
%187 = icmp eq i32 %186, 69
br i1 %187, label %188, label %225
188: ; preds = %183
%189 = load i32, i32* @EOF
%190 = icmp eq i32 %185, %189
%191 = getelementptr inbounds [121 x i8], [121 x i8]* %3, i64 0, i64 120
%192 = icmp uge i8* %184, %191
%193 = select i1 %190, i1 true, i1 %192
br i1 %193, label %225, label %194
194: ; preds = %188
%195 = trunc i32 %185 to i8
%196 = getelementptr inbounds i8, i8* %184, i64 1
store i8 %195, i8* %184
%197 = call i32 @getc(i32* %0)
switch i32 %197, label %207 [
i32 45, label %198
i32 43, label %198
]
198: ; preds = %194, %194
%199 = load i32, i32* @EOF
%200 = icmp eq i32 %197, %199
%201 = icmp uge i8* %196, %191
%202 = select i1 %200, i1 true, i1 %201
br i1 %202, label %225, label %203
203: ; preds = %198
%204 = trunc i32 %197 to i8
%205 = getelementptr inbounds i8, i8* %184, i64 2
store i8 %204, i8* %196
%206 = call i32 @getc(i32* %0)
br label %207
207: ; preds = %194, %203
%208 = phi i8* [ %205, %203 ], [ %196, %194 ]
%209 = phi i32 [ %206, %203 ], [ %197, %194 ]
%210 = call i64 @NpyOS_ascii_isdigit(i32 %209)
%211 = icmp eq i64 %210, 0
br i1 %211, label %225, label %212
212: ; preds = %207, %219
%213 = phi i32 [ %222, %219 ], [ %209, %207 ]
%214 = phi i8* [ %221, %219 ], [ %208, %207 ]
%215 = load i32, i32* @EOF
%216 = icmp eq i32 %213, %215
%217 = icmp uge i8* %214, %191
%218 = select i1 %216, i1 true, i1 %217
br i1 %218, label %225, label %219
219: ; preds = %212
%220 = trunc i32 %213 to i8
%221 = getelementptr inbounds i8, i8* %214, i64 1
store i8 %220, i8* %214
%222 = call i32 @getc(i32* %0)
%223 = call i64 @NpyOS_ascii_isdigit(i32 %222)
%224 = icmp eq i64 %223, 0
br i1 %224, label %225, label %212
225: ; preds = %119, %132, %127, %45, %53, %81, %141, %169, %212, %219, %164, %207, %183, %198, %188, %182, %158, %109, %106, %96, %101, %69, %67, %35, %19
%226 = phi i8* [ %5, %19 ], [ %27, %35 ], [ %63, %69 ], [ %99, %101 ], [ %107, %106 ], [ %99, %96 ], [ %63, %67 ], [ %27, %109 ], [ %155, %158 ], [ %184, %188 ], [ %196, %198 ], [ %184, %183 ], [ %179, %182 ], [ %208, %207 ], [ %166, %164 ], [ %214, %212 ], [ %221, %219 ], [ %170, %169 ], [ %143, %141 ], [ %82, %81 ], [ %47, %53 ], [ %47, %45 ], [ %121, %127 ], [ %137, %132 ], [ %121, %119 ]
%227 = phi i32 [ %18, %19 ], [ %28, %35 ], [ 40, %69 ], [ 41, %101 ], [ %108, %106 ], [ %98, %96 ], [ %60, %67 ], [ %28, %109 ], [ 46, %158 ], [ %185, %188 ], [ %197, %198 ], [ %185, %183 ], [ %178, %182 ], [ %209, %207 ], [ %165, %164 ], [ %213, %212 ], [ %222, %219 ], [ %171, %169 ], [ %142, %141 ], [ %83, %81 ], [ %48, %53 ], [ %48, %45 ], [ %122, %127 ], [ %134, %132 ], [ %122, %119 ]
%228 = call i32 @ungetc(i32 %227, i32* %0)
store i8 0, i8* %226
%229 = call double @NpyOS_ascii_strtod(i8* %5, i8** %4)
store double %229, double* %1
%230 = load i8*, i8** %4
%231 = icmp ne i8* %5, %230
%232 = zext i1 %231 to i32
br label %233
233: ; preds = %2, %225
%234 = phi i32 [ %232, %225 ], [ %7, %2 ]
ret i32 %234
}