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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int EXIT_FAILURE;
int EXIT_SUCCESS;
int /*<<< orphan*/ puts(char *);
scalar_t__ test_or(char *, char *, int, char *, int);
scalar_t__ test_read(char *, char *, int);
int main(void) {
  puts("failure:");
  if (test_read("", ("* |"), sizeof("* |") - 1) == 0) {
    return EXIT_FAILURE;
  }
  if (test_read("", ("* ||a"), sizeof("* ||a") - 1) == 0) {
    return EXIT_FAILURE;
  }
  if (test_read("", ("* || a"), sizeof("* || a") - 1) == 0) {
    return EXIT_FAILURE;
  }
  if (test_read("", ("* || 1.a"), sizeof("* || 1.a") - 1) == 0) {
    return EXIT_FAILURE;
  }
  if (test_read("",
                ("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. "
                 "Aenean commodo ligula eget "
                 "dolor. Aenean massa. Cum sociis natoque penatibus et magnis "
                 "dis parturient montes, nascet"
                 "ur ridiculus mus. Donec quam felis, ultricies nec, "
                 "pellentesque eu, pretium quis, s"),
                sizeof("Lorem ipsum dolor sit amet, consectetuer adipiscing "
                       "elit. Aenean commodo ligula eget "
                       "dolor. Aenean massa. Cum sociis natoque penatibus et "
                       "magnis dis parturient montes, nascet"
                       "ur ridiculus mus. Donec quam felis, ultricies nec, "
                       "pellentesque eu, pretium quis, s") -
                    1) == 0) {
    return EXIT_FAILURE;
  }
  puts("\nx-range:");
  if (test_read(">=0.0.0 || 1.2.3", ("* || 1.2.3"), sizeof("* || 1.2.3") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=1.0.0 <2.0.0 || >=2.0.0 <3.0.0", ("1.x || 2.x"),
                sizeof("1.x || 2.x") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=1.2.0 <1.3.0 || 3.0.0", ("1.2.x || 3.0.0"),
                sizeof("1.2.x || 3.0.0") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=0.0.0", (""), sizeof("") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=1.0.0 <2.0.0 || >=2.0.0 <3.0.0 || >=3.0.0 <4.0.0",
                ("1 || 2 || 3"), sizeof("1 || 2 || 3") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=1.2.0 <1.3.0 || >=5.0.0", ("1.2 || >=5"),
                sizeof("1.2 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  puts("\nhyphen:");
  if (test_read(">=1.2.3 <=2.3.4 || >=5.0.0", ("1.2.3 - 2.3.4 || >=5"),
                sizeof("1.2.3 - 2.3.4 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=1.2.0 <=2.3.4 || >=5.0.0", ("1.2 - 2.3.4 || >=5"),
                sizeof("1.2 - 2.3.4 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=1.2.3 <2.4.0 || >=5.0.0", ("1.2.3 - 2.3 || >=5"),
                sizeof("1.2.3 - 2.3 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=1.2.3 <3.0.0 || >=5.0.0", ("1.2.3 - 2 || >=5"),
                sizeof("1.2.3 - 2 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  puts("\ntilde:");
  if (test_read(">=1.2.3 <1.3.0 || >=5.0.0", ("~1.2.3 || >=5"),
                sizeof("~1.2.3 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=1.2.0 <1.3.0 || >=5.0.0", ("~1.2 || >=5"),
                sizeof("~1.2 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=1.0.0 <2.0.0 || >=5.0.0", ("~1 || >=5"),
                sizeof("~1 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=0.2.3 <0.3.0 || >=5.0.0", ("~0.2.3 || >=5"),
                sizeof("~0.2.3 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=0.2.0 <0.3.0 || >=5.0.0", ("~0.2 || >=5"),
                sizeof("~0.2 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=0.0.0 <1.0.0 || >=5.0.0", ("~0 || >=5"),
                sizeof("~0 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  puts("\ncaret:");
  if (test_read(">=1.2.3 <2.0.0 || >=5.0.0", ("^1.2.3 || >=5"),
                sizeof("^1.2.3 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=0.2.3 <0.3.0 || >=5.0.0", ("^0.2.3 || >=5"),
                sizeof("^0.2.3 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_read(">=0.0.3 <0.0.4 || >=5.0.0", ("^0.0.3 || >=5"),
                sizeof("^0.0.3 || >=5") - 1)) {
    return EXIT_FAILURE;
  }
  puts("\nand:");
  if (test_or(">=0.0.0 || >=0.0.3 <0.0.4", ("*"), sizeof("*") - 1, ("^0.0.3"),
              sizeof("^0.0.3") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_or(">=1.0.0 <2.0.0 || >=0.0.3 <0.0.4", ("1.x"), sizeof("1.x") - 1,
              ("^0.0.3"), sizeof("^0.0.3") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_or(">=1.2.0 <1.3.0 || >=0.0.3 <0.0.4", ("1.2.x"),
              sizeof("1.2.x") - 1, ("^0.0.3"), sizeof("^0.0.3") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_or(">=1.2.0 <1.3.0 || >=1.2.0 <1.3.0 || >=0.0.3 <0.0.4",
              ("1.2 || 1.2.x"), sizeof("1.2 || 1.2.x") - 1, ("^0.0.3"),
              sizeof("^0.0.3") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_or(">=1.0.0 <2.0.0 || >=0.0.3 <0.0.4", ("1"), sizeof("1") - 1,
              ("^0.0.3"), sizeof("^0.0.3") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_or(">=1.2.0 <1.3.0 || >=0.0.3 <0.0.4", ("1.2"), sizeof("1.2") - 1,
              ("^0.0.3"), sizeof("^0.0.3") - 1)) {
    return EXIT_FAILURE;
  }
  if (test_or("", ("1.2"), sizeof("1.2") - 1, (""), sizeof("") - 1) == 0) {
    return EXIT_FAILURE;
  }
  if (test_or("", ("1.2"), sizeof("1.2") - 1, ("a"), sizeof("a") - 1) == 0) {
    return EXIT_FAILURE;
  }
  if (test_or("", ("1.2"), sizeof("1.2") - 1, ("1.2.x || abc"),
              sizeof("1.2.x || abc") - 1) == 0) {
    return EXIT_FAILURE;
  }
  return EXIT_SUCCESS;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movl   $0x0,-0x4(%rbp)
lea    0xeba(%rip),%rdi
call   1030 <puts@plt>
lea    0x12c5(%rip),%rdi
lea    0xeb0(%rip),%rsi
mov    $0x3,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
jne    117e <main+0x4e>
mov    0x2e6c(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0x1292(%rip),%rdi
lea    0xe81(%rip),%rsi
mov    $0x5,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
jne    11b1 <main+0x81>
mov    0x2e39(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0x125f(%rip),%rdi
lea    0xe54(%rip),%rsi
mov    $0x6,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
jne    11e4 <main+0xb4>
mov    0x2e06(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0x122c(%rip),%rdi
lea    0xe28(%rip),%rsi
mov    $0x8,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
jne    1217 <main+0xe7>
mov    0x2dd3(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0x11f9(%rip),%rdi
lea    0xdfe(%rip),%rsi
mov    $0x101,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
jne    124a <main+0x11a>
mov    0x2da0(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xed4(%rip),%rdi
call   1030 <puts@plt>
lea    0xed2(%rip),%rdi
lea    0xedc(%rip),%rsi
mov    $0xa,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     1289 <main+0x159>
mov    0x2d61(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xebb(%rip),%rdi
lea    0xed5(%rip),%rsi
mov    $0xa,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     12bc <main+0x18c>
mov    0x2d2e(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xeb4(%rip),%rdi
lea    0xec5(%rip),%rsi
mov    $0xe,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     12ef <main+0x1bf>
mov    0x2cfb(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xea8(%rip),%rdi
lea    0x111a(%rip),%rsi
xor    %edx,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     131f <main+0x1ef>
mov    0x2ccb(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xe80(%rip),%rdi
lea    0xeac(%rip),%rsi
mov    $0xb,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     1352 <main+0x222>
mov    0x2c98(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xe8c(%rip),%rdi
lea    0xf8f(%rip),%rsi
mov    $0xa,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     1385 <main+0x255>
mov    0x2c65(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xe73(%rip),%rdi
call   1030 <puts@plt>
lea    0xe70(%rip),%rdi
lea    0xe84(%rip),%rsi
mov    $0x14,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     13c4 <main+0x294>
mov    0x2c26(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xe6d(%rip),%rdi
lea    0xe81(%rip),%rsi
mov    $0x12,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     13f7 <main+0x2c7>
mov    0x2bf3(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xe68(%rip),%rdi
lea    0xe7b(%rip),%rsi
mov    $0x12,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     142a <main+0x2fa>
mov    0x2bc0(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xe62(%rip),%rdi
lea    0xe75(%rip),%rsi
mov    $0x10,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     145d <main+0x32d>
mov    0x2b8d(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xe5a(%rip),%rdi
call   1030 <puts@plt>
lea    0xe56(%rip),%rdi
lea    0xe69(%rip),%rsi
mov    $0xd,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     149c <main+0x36c>
mov    0x2b4e(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xd42(%rip),%rdi
lea    0xe44(%rip),%rsi
mov    $0xb,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     14cf <main+0x39f>
mov    0x2b1b(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xe24(%rip),%rdi
lea    0xe37(%rip),%rsi
mov    $0x9,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     1502 <main+0x3d2>
mov    0x2ae8(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xe15(%rip),%rdi
lea    0xe28(%rip),%rsi
mov    $0xd,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     1535 <main+0x405>
mov    0x2ab5(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xe0a(%rip),%rdi
lea    0xe1d(%rip),%rsi
mov    $0xb,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     1568 <main+0x438>
mov    0x2a82(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xdfd(%rip),%rdi
lea    0xe10(%rip),%rsi
mov    $0x9,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     159b <main+0x46b>
mov    0x2a4f(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xdee(%rip),%rdi
call   1030 <puts@plt>
lea    0xdea(%rip),%rdi
lea    0xdfd(%rip),%rsi
mov    $0xd,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     15da <main+0x4aa>
mov    0x2a10(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xd3d(%rip),%rdi
lea    0xdd8(%rip),%rsi
mov    $0xd,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     160d <main+0x4dd>
mov    0x29dd(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xdba(%rip),%rdi
lea    0xdcd(%rip),%rsi
mov    $0xd,%edx
call   1050 <test_read@plt>
cmp    $0x0,%rax
je     1640 <main+0x510>
mov    0x29aa(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xdaf(%rip),%rdi
call   1030 <puts@plt>
lea    0xda9(%rip),%rdi
lea    0xdbc(%rip),%rsi
mov    $0x1,%edx
lea    0xdb2(%rip),%rcx
mov    $0x6,%r8d
call   1040 <test_or@plt>
cmp    $0x0,%rax
je     168c <main+0x55c>
mov    0x295e(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xd8c(%rip),%rdi
lea    0xda6(%rip),%rsi
mov    $0x3,%edx
lea    0xd72(%rip),%rcx
mov    $0x6,%r8d
call   1040 <test_or@plt>
cmp    $0x0,%rax
je     16cc <main+0x59c>
mov    0x291e(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xd83(%rip),%rdi
lea    0xda4(%rip),%rsi
mov    $0x5,%edx
lea    0xd32(%rip),%rcx
mov    $0x6,%r8d
call   1040 <test_or@plt>
cmp    $0x0,%rax
je     170c <main+0x5dc>
mov    0x28de(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xd31(%rip),%rdi
lea    0xd5d(%rip),%rsi
mov    $0xc,%edx
lea    0xcf2(%rip),%rcx
mov    $0x6,%r8d
call   1040 <test_or@plt>
cmp    $0x0,%rax
je     174c <main+0x61c>
mov    0x289e(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xccc(%rip),%rdi
lea    0xd2a(%rip),%rsi
mov    $0x1,%edx
lea    0xcb2(%rip),%rcx
mov    $0x6,%r8d
call   1040 <test_or@plt>
cmp    $0x0,%rax
je     178c <main+0x65c>
mov    0x285e(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xcc3(%rip),%rdi
lea    0xcec(%rip),%rsi
mov    $0x3,%edx
lea    0xc72(%rip),%rcx
mov    $0x6,%r8d
call   1040 <test_or@plt>
cmp    $0x0,%rax
je     17cc <main+0x69c>
mov    0x281e(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xc44(%rip),%rcx
lea    0xcac(%rip),%rsi
mov    $0x3,%edx
xor    %r8d,%r8d
mov    %rcx,%rdi
call   1040 <test_or@plt>
cmp    $0x0,%rax
jne    1805 <main+0x6d5>
mov    0x27e5(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xc0b(%rip),%rdi
lea    0xc73(%rip),%rsi
mov    $0x3,%edx
lea    0x7f9(%rip),%rcx
mov    $0x1,%r8d
call   1040 <test_or@plt>
cmp    $0x0,%rax
jne    1845 <main+0x715>
mov    0x27a5(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
lea    0xbcb(%rip),%rdi
lea    0xc33(%rip),%rsi
mov    $0x3,%edx
lea    0xc2b(%rip),%rcx
mov    $0xc,%r8d
call   1040 <test_or@plt>
cmp    $0x0,%rax
jne    1885 <main+0x755>
mov    0x2765(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
jmp    1891 <main+0x761>
mov    0x274c(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
lea    0xec8(%rip),%rdi
call   1030 <puts@plt>
lea    0x12d3(%rip),%rdi
lea    0xebe(%rip),%rsi
mov    $0x3,%edx
call   1050 <test_read@plt>
mov    0x2e84(%rip),%rbx
test   %rax,%rax
je     1599 <main+0x469>
lea    0x12ab(%rip),%rdi
lea    0xe9a(%rip),%rsi
mov    $0x5,%edx
call   1050 <test_read@plt>
test   %rax,%rax
je     1599 <main+0x469>
lea    0x128a(%rip),%rdi
lea    0xe7f(%rip),%rsi
mov    $0x6,%edx
call   1050 <test_read@plt>
test   %rax,%rax
je     1599 <main+0x469>
lea    0x1269(%rip),%rdi
lea    0xe65(%rip),%rsi
mov    $0x8,%edx
call   1050 <test_read@plt>
test   %rax,%rax
je     1599 <main+0x469>
lea    0x1248(%rip),%rdi
lea    0xe4d(%rip),%rsi
mov    $0x101,%edx
call   1050 <test_read@plt>
test   %rax,%rax
je     1599 <main+0x469>
lea    0xf35(%rip),%rdi
call   1030 <puts@plt>
lea    0xf33(%rip),%rdi
lea    0xf3d(%rip),%rsi
mov    $0xa,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf2e(%rip),%rdi
lea    0xf48(%rip),%rsi
mov    $0xa,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf39(%rip),%rdi
lea    0xf4a(%rip),%rsi
mov    $0xe,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf3f(%rip),%rdi
lea    0x11b1(%rip),%rsi
xor    %edx,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf29(%rip),%rdi
lea    0xf55(%rip),%rsi
mov    $0xb,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf47(%rip),%rdi
lea    0x104a(%rip),%rsi
mov    $0xa,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf40(%rip),%rdi
call   1030 <puts@plt>
lea    0xf3d(%rip),%rdi
lea    0xf51(%rip),%rsi
mov    $0x14,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf4c(%rip),%rdi
lea    0xf60(%rip),%rsi
mov    $0x12,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf59(%rip),%rdi
lea    0xf6c(%rip),%rsi
mov    $0x12,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf65(%rip),%rdi
lea    0xf78(%rip),%rsi
mov    $0x10,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf6f(%rip),%rdi
call   1030 <puts@plt>
lea    0xf6b(%rip),%rdi
lea    0xf7e(%rip),%rsi
mov    $0xd,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xe69(%rip),%rdi
lea    0xf6b(%rip),%rsi
mov    $0xb,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf5d(%rip),%rdi
lea    0xf70(%rip),%rsi
mov    $0x9,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf60(%rip),%rdi
lea    0xf73(%rip),%rsi
mov    $0xd,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf67(%rip),%rdi
lea    0xf7a(%rip),%rsi
mov    $0xb,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf6c(%rip),%rdi
lea    0xf7f(%rip),%rsi
mov    $0x9,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf6f(%rip),%rdi
call   1030 <puts@plt>
lea    0xf6b(%rip),%rdi
lea    0xf7e(%rip),%rsi
mov    $0xd,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xed0(%rip),%rdi
lea    0xf6b(%rip),%rsi
mov    $0xd,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf5f(%rip),%rdi
lea    0xf72(%rip),%rsi
mov    $0xd,%edx
call   1050 <test_read@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf66(%rip),%rdi
call   1030 <puts@plt>
lea    0xf60(%rip),%rdi
lea    0xf73(%rip),%rsi
lea    0xf6e(%rip),%rcx
mov    $0x1,%edx
mov    $0x6,%r8d
call   1040 <test_or@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf55(%rip),%rdi
lea    0xf6f(%rip),%rsi
lea    0xf40(%rip),%rcx
mov    $0x3,%edx
mov    $0x6,%r8d
call   1040 <test_or@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf5e(%rip),%rdi
lea    0xf7f(%rip),%rsi
lea    0xf12(%rip),%rcx
mov    $0x5,%edx
mov    $0x6,%r8d
call   1040 <test_or@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xf22(%rip),%rdi
lea    0xf4e(%rip),%rsi
lea    0xee8(%rip),%rcx
mov    $0xc,%edx
mov    $0x6,%r8d
call   1040 <test_or@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xed3(%rip),%rdi
lea    0xf31(%rip),%rsi
lea    0xebe(%rip),%rcx
mov    $0x1,%edx
mov    $0x6,%r8d
call   1040 <test_or@plt>
test   %rax,%rax
jne    1599 <main+0x469>
lea    0xee0(%rip),%rdi
lea    0xf09(%rip),%rsi
lea    0xe94(%rip),%rcx
mov    $0x3,%edx
mov    $0x6,%r8d
call   1040 <test_or@plt>
test   %rax,%rax
je     159d <main+0x46d>
mov    (%rbx),%eax
pop    %rbx
ret
lea    0xee2(%rip),%rsi
lea    0xe6c(%rip),%rcx
mov    %rcx,%rdi
mov    $0x3,%edx
xor    %r8d,%r8d
call   1040 <test_or@plt>
test   %rax,%rax
je     1599 <main+0x469>
lea    0xe50(%rip),%rdi
lea    0xeb8(%rip),%rsi
lea    0xa43(%rip),%rcx
mov    $0x3,%edx
mov    $0x1,%r8d
call   1040 <test_or@plt>
test   %rax,%rax
je     1599 <main+0x469>
lea    0xe26(%rip),%rdi
lea    0xe8e(%rip),%rsi
lea    0xe8b(%rip),%rcx
mov    $0x3,%edx
mov    $0xc,%r8d
call   1040 <test_or@plt>
test   %rax,%rax
jne    1620 <main+0x4f0>
mov    0x29c5(%rip),%rbx
jmp    1599 <main+0x469>
mov    0x29b1(%rip),%rbx
jmp    1599 <main+0x469>

LLVM IR (-O0):
@.str = [9 x i8] c"failure:\00"
@.str.1 = [1 x i8] zeroinitializer
@.str.2 = [4 x i8] c"* |\00"
@EXIT_FAILURE = global i32 0
@.str.3 = [6 x i8] c"* ||a\00"
@.str.4 = [7 x i8] c"* || a\00"
@.str.5 = [9 x i8] c"* || 1.a\00"
@.str.6 = [258 x i8] c"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, s\00"
@.str.7 = [10 x i8] c"\0Ax-range:\00"
@.str.8 = [17 x i8] c">=0.0.0 || 1.2.3\00"
@.str.9 = [11 x i8] c"* || 1.2.3\00"
@.str.10 = [33 x i8] c">=1.0.0 <2.0.0 || >=2.0.0 <3.0.0\00"
@.str.11 = [11 x i8] c"1.x || 2.x\00"
@.str.12 = [24 x i8] c">=1.2.0 <1.3.0 || 3.0.0\00"
@.str.13 = [15 x i8] c"1.2.x || 3.0.0\00"
@.str.14 = [8 x i8] c">=0.0.0\00"
@.str.15 = [51 x i8] c">=1.0.0 <2.0.0 || >=2.0.0 <3.0.0 || >=3.0.0 <4.0.0\00"
@.str.16 = [12 x i8] c"1 || 2 || 3\00"
@.str.17 = [26 x i8] c">=1.2.0 <1.3.0 || >=5.0.0\00"
@.str.18 = [11 x i8] c"1.2 || >=5\00"
@.str.19 = [9 x i8] c"\0Ahyphen:\00"
@.str.20 = [27 x i8] c">=1.2.3 <=2.3.4 || >=5.0.0\00"
@.str.21 = [21 x i8] c"1.2.3 - 2.3.4 || >=5\00"
@.str.22 = [27 x i8] c">=1.2.0 <=2.3.4 || >=5.0.0\00"
@.str.23 = [19 x i8] c"1.2 - 2.3.4 || >=5\00"
@.str.24 = [26 x i8] c">=1.2.3 <2.4.0 || >=5.0.0\00"
@.str.25 = [19 x i8] c"1.2.3 - 2.3 || >=5\00"
@.str.26 = [26 x i8] c">=1.2.3 <3.0.0 || >=5.0.0\00"
@.str.27 = [17 x i8] c"1.2.3 - 2 || >=5\00"
@.str.28 = [8 x i8] c"\0Atilde:\00"
@.str.29 = [26 x i8] c">=1.2.3 <1.3.0 || >=5.0.0\00"
@.str.30 = [14 x i8] c"~1.2.3 || >=5\00"
@.str.31 = [12 x i8] c"~1.2 || >=5\00"
@.str.32 = [26 x i8] c">=1.0.0 <2.0.0 || >=5.0.0\00"
@.str.33 = [10 x i8] c"~1 || >=5\00"
@.str.34 = [26 x i8] c">=0.2.3 <0.3.0 || >=5.0.0\00"
@.str.35 = [14 x i8] c"~0.2.3 || >=5\00"
@.str.36 = [26 x i8] c">=0.2.0 <0.3.0 || >=5.0.0\00"
@.str.37 = [12 x i8] c"~0.2 || >=5\00"
@.str.38 = [26 x i8] c">=0.0.0 <1.0.0 || >=5.0.0\00"
@.str.39 = [10 x i8] c"~0 || >=5\00"
@.str.40 = [8 x i8] c"\0Acaret:\00"
@.str.41 = [26 x i8] c">=1.2.3 <2.0.0 || >=5.0.0\00"
@.str.42 = [14 x i8] c"^1.2.3 || >=5\00"
@.str.43 = [14 x i8] c"^0.2.3 || >=5\00"
@.str.44 = [26 x i8] c">=0.0.3 <0.0.4 || >=5.0.0\00"
@.str.45 = [14 x i8] c"^0.0.3 || >=5\00"
@.str.46 = [6 x i8] c"\0Aand:\00"
@.str.47 = [26 x i8] c">=0.0.0 || >=0.0.3 <0.0.4\00"
@.str.48 = [2 x i8] c"*\00"
@.str.49 = [7 x i8] c"^0.0.3\00"
@.str.50 = [33 x i8] c">=1.0.0 <2.0.0 || >=0.0.3 <0.0.4\00"
@.str.51 = [4 x i8] c"1.x\00"
@.str.52 = [33 x i8] c">=1.2.0 <1.3.0 || >=0.0.3 <0.0.4\00"
@.str.53 = [6 x i8] c"1.2.x\00"
@.str.54 = [51 x i8] c">=1.2.0 <1.3.0 || >=1.2.0 <1.3.0 || >=0.0.3 <0.0.4\00"
@.str.55 = [13 x i8] c"1.2 || 1.2.x\00"
@.str.56 = [2 x i8] c"1\00"
@.str.57 = [4 x i8] c"1.2\00"
@.str.58 = [2 x i8] c"a\00"
@.str.59 = [13 x i8] c"1.2.x || abc\00"
@EXIT_SUCCESS = global i32 0
define i32 @main() {
%1 = alloca i32
store i32 0, i32* %1
%2 = call i32 @puts(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0))
%3 = call i64 @test_read(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i32 3)
%4 = icmp eq i64 %3, 0
br i1 %4, label %5, label %7
5: ; preds = %0
%6 = load i32, i32* @EXIT_FAILURE
store i32 %6, i32* %1
br label %174
7: ; preds = %0
%8 = call i64 @test_read(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0), i32 5)
%9 = icmp eq i64 %8, 0
br i1 %9, label %10, label %12
10: ; preds = %7
%11 = load i32, i32* @EXIT_FAILURE
store i32 %11, i32* %1
br label %174
12: ; preds = %7
%13 = call i64 @test_read(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0), i32 6)
%14 = icmp eq i64 %13, 0
br i1 %14, label %15, label %17
15: ; preds = %12
%16 = load i32, i32* @EXIT_FAILURE
store i32 %16, i32* %1
br label %174
17: ; preds = %12
%18 = call i64 @test_read(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0), i32 8)
%19 = icmp eq i64 %18, 0
br i1 %19, label %20, label %22
20: ; preds = %17
%21 = load i32, i32* @EXIT_FAILURE
store i32 %21, i32* %1
br label %174
22: ; preds = %17
%23 = call i64 @test_read(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([258 x i8], [258 x i8]* @.str.6, i64 0, i64 0), i32 257)
%24 = icmp eq i64 %23, 0
br i1 %24, label %25, label %27
25: ; preds = %22
%26 = load i32, i32* @EXIT_FAILURE
store i32 %26, i32* %1
br label %174
27: ; preds = %22
%28 = call i32 @puts(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.7, i64 0, i64 0))
%29 = call i64 @test_read(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0), i32 10)
%30 = icmp ne i64 %29, 0
br i1 %30, label %31, label %33
31: ; preds = %27
%32 = load i32, i32* @EXIT_FAILURE
store i32 %32, i32* %1
br label %174
33: ; preds = %27
%34 = call i64 @test_read(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.11, i64 0, i64 0), i32 10)
%35 = icmp ne i64 %34, 0
br i1 %35, label %36, label %38
36: ; preds = %33
%37 = load i32, i32* @EXIT_FAILURE
store i32 %37, i32* %1
br label %174
38: ; preds = %33
%39 = call i64 @test_read(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.13, i64 0, i64 0), i32 14)
%40 = icmp ne i64 %39, 0
br i1 %40, label %41, label %43
41: ; preds = %38
%42 = load i32, i32* @EXIT_FAILURE
store i32 %42, i32* %1
br label %174
43: ; preds = %38
%44 = call i64 @test_read(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i32 0)
%45 = icmp ne i64 %44, 0
br i1 %45, label %46, label %48
46: ; preds = %43
%47 = load i32, i32* @EXIT_FAILURE
store i32 %47, i32* %1
br label %174
48: ; preds = %43
%49 = call i64 @test_read(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.16, i64 0, i64 0), i32 11)
%50 = icmp ne i64 %49, 0
br i1 %50, label %51, label %53
51: ; preds = %48
%52 = load i32, i32* @EXIT_FAILURE
store i32 %52, i32* %1
br label %174
53: ; preds = %48
%54 = call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.18, i64 0, i64 0), i32 10)
%55 = icmp ne i64 %54, 0
br i1 %55, label %56, label %58
56: ; preds = %53
%57 = load i32, i32* @EXIT_FAILURE
store i32 %57, i32* %1
br label %174
58: ; preds = %53
%59 = call i32 @puts(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.19, i64 0, i64 0))
%60 = call i64 @test_read(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.20, i64 0, i64 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0), i32 20)
%61 = icmp ne i64 %60, 0
br i1 %61, label %62, label %64
62: ; preds = %58
%63 = load i32, i32* @EXIT_FAILURE
store i32 %63, i32* %1
br label %174
64: ; preds = %58
%65 = call i64 @test_read(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.22, i64 0, i64 0), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.23, i64 0, i64 0), i32 18)
%66 = icmp ne i64 %65, 0
br i1 %66, label %67, label %69
67: ; preds = %64
%68 = load i32, i32* @EXIT_FAILURE
store i32 %68, i32* %1
br label %174
69: ; preds = %64
%70 = call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.24, i64 0, i64 0), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.25, i64 0, i64 0), i32 18)
%71 = icmp ne i64 %70, 0
br i1 %71, label %72, label %74
72: ; preds = %69
%73 = load i32, i32* @EXIT_FAILURE
store i32 %73, i32* %1
br label %174
74: ; preds = %69
%75 = call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.26, i64 0, i64 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.27, i64 0, i64 0), i32 16)
%76 = icmp ne i64 %75, 0
br i1 %76, label %77, label %79
77: ; preds = %74
%78 = load i32, i32* @EXIT_FAILURE
store i32 %78, i32* %1
br label %174
79: ; preds = %74
%80 = call i32 @puts(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.28, i64 0, i64 0))
%81 = call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.29, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.30, i64 0, i64 0), i32 13)
%82 = icmp ne i64 %81, 0
br i1 %82, label %83, label %85
83: ; preds = %79
%84 = load i32, i32* @EXIT_FAILURE
store i32 %84, i32* %1
br label %174
85: ; preds = %79
%86 = call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.31, i64 0, i64 0), i32 11)
%87 = icmp ne i64 %86, 0
br i1 %87, label %88, label %90
88: ; preds = %85
%89 = load i32, i32* @EXIT_FAILURE
store i32 %89, i32* %1
br label %174
90: ; preds = %85
%91 = call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.32, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.33, i64 0, i64 0), i32 9)
%92 = icmp ne i64 %91, 0
br i1 %92, label %93, label %95
93: ; preds = %90
%94 = load i32, i32* @EXIT_FAILURE
store i32 %94, i32* %1
br label %174
95: ; preds = %90
%96 = call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.34, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.35, i64 0, i64 0), i32 13)
%97 = icmp ne i64 %96, 0
br i1 %97, label %98, label %100
98: ; preds = %95
%99 = load i32, i32* @EXIT_FAILURE
store i32 %99, i32* %1
br label %174
100: ; preds = %95
%101 = call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.36, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.37, i64 0, i64 0), i32 11)
%102 = icmp ne i64 %101, 0
br i1 %102, label %103, label %105
103: ; preds = %100
%104 = load i32, i32* @EXIT_FAILURE
store i32 %104, i32* %1
br label %174
105: ; preds = %100
%106 = call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.38, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.39, i64 0, i64 0), i32 9)
%107 = icmp ne i64 %106, 0
br i1 %107, label %108, label %110
108: ; preds = %105
%109 = load i32, i32* @EXIT_FAILURE
store i32 %109, i32* %1
br label %174
110: ; preds = %105
%111 = call i32 @puts(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.40, i64 0, i64 0))
%112 = call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.41, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.42, i64 0, i64 0), i32 13)
%113 = icmp ne i64 %112, 0
br i1 %113, label %114, label %116
114: ; preds = %110
%115 = load i32, i32* @EXIT_FAILURE
store i32 %115, i32* %1
br label %174
116: ; preds = %110
%117 = call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.34, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.43, i64 0, i64 0), i32 13)
%118 = icmp ne i64 %117, 0
br i1 %118, label %119, label %121
119: ; preds = %116
%120 = load i32, i32* @EXIT_FAILURE
store i32 %120, i32* %1
br label %174
121: ; preds = %116
%122 = call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.44, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.45, i64 0, i64 0), i32 13)
%123 = icmp ne i64 %122, 0
br i1 %123, label %124, label %126
124: ; preds = %121
%125 = load i32, i32* @EXIT_FAILURE
store i32 %125, i32* %1
br label %174
126: ; preds = %121
%127 = call i32 @puts(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.46, i64 0, i64 0))
%128 = call i64 @test_or(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.47, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.48, i64 0, i64 0), i32 1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i64 0, i64 0), i32 6)
%129 = icmp ne i64 %128, 0
br i1 %129, label %130, label %132
130: ; preds = %126
%131 = load i32, i32* @EXIT_FAILURE
store i32 %131, i32* %1
br label %174
132: ; preds = %126
%133 = call i64 @test_or(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.50, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.51, i64 0, i64 0), i32 3, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i64 0, i64 0), i32 6)
%134 = icmp ne i64 %133, 0
br i1 %134, label %135, label %137
135: ; preds = %132
%136 = load i32, i32* @EXIT_FAILURE
store i32 %136, i32* %1
br label %174
137: ; preds = %132
%138 = call i64 @test_or(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.52, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.53, i64 0, i64 0), i32 5, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i64 0, i64 0), i32 6)
%139 = icmp ne i64 %138, 0
br i1 %139, label %140, label %142
140: ; preds = %137
%141 = load i32, i32* @EXIT_FAILURE
store i32 %141, i32* %1
br label %174
142: ; preds = %137
%143 = call i64 @test_or(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.54, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.55, i64 0, i64 0), i32 12, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i64 0, i64 0), i32 6)
%144 = icmp ne i64 %143, 0
br i1 %144, label %145, label %147
145: ; preds = %142
%146 = load i32, i32* @EXIT_FAILURE
store i32 %146, i32* %1
br label %174
147: ; preds = %142
%148 = call i64 @test_or(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.50, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.56, i64 0, i64 0), i32 1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i64 0, i64 0), i32 6)
%149 = icmp ne i64 %148, 0
br i1 %149, label %150, label %152
150: ; preds = %147
%151 = load i32, i32* @EXIT_FAILURE
store i32 %151, i32* %1
br label %174
152: ; preds = %147
%153 = call i64 @test_or(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.52, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.57, i64 0, i64 0), i32 3, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i64 0, i64 0), i32 6)
%154 = icmp ne i64 %153, 0
br i1 %154, label %155, label %157
155: ; preds = %152
%156 = load i32, i32* @EXIT_FAILURE
store i32 %156, i32* %1
br label %174
157: ; preds = %152
%158 = call i64 @test_or(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.57, i64 0, i64 0), i32 3, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i32 0)
%159 = icmp eq i64 %158, 0
br i1 %159, label %160, label %162
160: ; preds = %157
%161 = load i32, i32* @EXIT_FAILURE
store i32 %161, i32* %1
br label %174
162: ; preds = %157
%163 = call i64 @test_or(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.57, i64 0, i64 0), i32 3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.58, i64 0, i64 0), i32 1)
%164 = icmp eq i64 %163, 0
br i1 %164, label %165, label %167
165: ; preds = %162
%166 = load i32, i32* @EXIT_FAILURE
store i32 %166, i32* %1
br label %174
167: ; preds = %162
%168 = call i64 @test_or(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.57, i64 0, i64 0), i32 3, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.59, i64 0, i64 0), i32 12)
%169 = icmp eq i64 %168, 0
br i1 %169, label %170, label %172
170: ; preds = %167
%171 = load i32, i32* @EXIT_FAILURE
store i32 %171, i32* %1
br label %174
172: ; preds = %167
%173 = load i32, i32* @EXIT_SUCCESS
store i32 %173, i32* %1
br label %174
174: ; preds = %172, %170, %165, %160, %155, %150, %145, %140, %135, %130, %124, %119, %114, %108, %103, %98, %93, %88, %83, %77, %72, %67, %62, %56, %51, %46, %41, %36, %31, %25, %20, %15, %10, %5
%175 = load i32, i32* %1
ret i32 %175
}

LLVM IR (-O2):
@.str = [9 x i8] c"failure:\00"
@.str.1 = [1 x i8] zeroinitializer
@.str.2 = [4 x i8] c"* |\00"
@EXIT_FAILURE = global i32 0
@.str.3 = [6 x i8] c"* ||a\00"
@.str.4 = [7 x i8] c"* || a\00"
@.str.5 = [9 x i8] c"* || 1.a\00"
@.str.6 = [258 x i8] c"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, s\00"
@.str.7 = [10 x i8] c"\0Ax-range:\00"
@.str.8 = [17 x i8] c">=0.0.0 || 1.2.3\00"
@.str.9 = [11 x i8] c"* || 1.2.3\00"
@.str.10 = [33 x i8] c">=1.0.0 <2.0.0 || >=2.0.0 <3.0.0\00"
@.str.11 = [11 x i8] c"1.x || 2.x\00"
@.str.12 = [24 x i8] c">=1.2.0 <1.3.0 || 3.0.0\00"
@.str.13 = [15 x i8] c"1.2.x || 3.0.0\00"
@.str.14 = [8 x i8] c">=0.0.0\00"
@.str.15 = [51 x i8] c">=1.0.0 <2.0.0 || >=2.0.0 <3.0.0 || >=3.0.0 <4.0.0\00"
@.str.16 = [12 x i8] c"1 || 2 || 3\00"
@.str.17 = [26 x i8] c">=1.2.0 <1.3.0 || >=5.0.0\00"
@.str.18 = [11 x i8] c"1.2 || >=5\00"
@.str.19 = [9 x i8] c"\0Ahyphen:\00"
@.str.20 = [27 x i8] c">=1.2.3 <=2.3.4 || >=5.0.0\00"
@.str.21 = [21 x i8] c"1.2.3 - 2.3.4 || >=5\00"
@.str.22 = [27 x i8] c">=1.2.0 <=2.3.4 || >=5.0.0\00"
@.str.23 = [19 x i8] c"1.2 - 2.3.4 || >=5\00"
@.str.24 = [26 x i8] c">=1.2.3 <2.4.0 || >=5.0.0\00"
@.str.25 = [19 x i8] c"1.2.3 - 2.3 || >=5\00"
@.str.26 = [26 x i8] c">=1.2.3 <3.0.0 || >=5.0.0\00"
@.str.27 = [17 x i8] c"1.2.3 - 2 || >=5\00"
@.str.28 = [8 x i8] c"\0Atilde:\00"
@.str.29 = [26 x i8] c">=1.2.3 <1.3.0 || >=5.0.0\00"
@.str.30 = [14 x i8] c"~1.2.3 || >=5\00"
@.str.31 = [12 x i8] c"~1.2 || >=5\00"
@.str.32 = [26 x i8] c">=1.0.0 <2.0.0 || >=5.0.0\00"
@.str.33 = [10 x i8] c"~1 || >=5\00"
@.str.34 = [26 x i8] c">=0.2.3 <0.3.0 || >=5.0.0\00"
@.str.35 = [14 x i8] c"~0.2.3 || >=5\00"
@.str.36 = [26 x i8] c">=0.2.0 <0.3.0 || >=5.0.0\00"
@.str.37 = [12 x i8] c"~0.2 || >=5\00"
@.str.38 = [26 x i8] c">=0.0.0 <1.0.0 || >=5.0.0\00"
@.str.39 = [10 x i8] c"~0 || >=5\00"
@.str.40 = [8 x i8] c"\0Acaret:\00"
@.str.41 = [26 x i8] c">=1.2.3 <2.0.0 || >=5.0.0\00"
@.str.42 = [14 x i8] c"^1.2.3 || >=5\00"
@.str.43 = [14 x i8] c"^0.2.3 || >=5\00"
@.str.44 = [26 x i8] c">=0.0.3 <0.0.4 || >=5.0.0\00"
@.str.45 = [14 x i8] c"^0.0.3 || >=5\00"
@.str.46 = [6 x i8] c"\0Aand:\00"
@.str.47 = [26 x i8] c">=0.0.0 || >=0.0.3 <0.0.4\00"
@.str.48 = [2 x i8] c"*\00"
@.str.49 = [7 x i8] c"^0.0.3\00"
@.str.50 = [33 x i8] c">=1.0.0 <2.0.0 || >=0.0.3 <0.0.4\00"
@.str.51 = [4 x i8] c"1.x\00"
@.str.52 = [33 x i8] c">=1.2.0 <1.3.0 || >=0.0.3 <0.0.4\00"
@.str.53 = [6 x i8] c"1.2.x\00"
@.str.54 = [51 x i8] c">=1.2.0 <1.3.0 || >=1.2.0 <1.3.0 || >=0.0.3 <0.0.4\00"
@.str.55 = [13 x i8] c"1.2 || 1.2.x\00"
@.str.56 = [2 x i8] c"1\00"
@.str.57 = [4 x i8] c"1.2\00"
@.str.58 = [2 x i8] c"a\00"
@.str.59 = [13 x i8] c"1.2.x || abc\00"
@EXIT_SUCCESS = global i32 0
define i32 @main() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0))
%2 = tail call i64 @test_read(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i32 3)
%3 = icmp eq i64 %2, 0
br i1 %3, label %106, label %4
4: ; preds = %0
%5 = tail call i64 @test_read(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0), i32 5)
%6 = icmp eq i64 %5, 0
br i1 %6, label %106, label %7
7: ; preds = %4
%8 = tail call i64 @test_read(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0), i32 6)
%9 = icmp eq i64 %8, 0
br i1 %9, label %106, label %10
10: ; preds = %7
%11 = tail call i64 @test_read(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0), i32 8)
%12 = icmp eq i64 %11, 0
br i1 %12, label %106, label %13
13: ; preds = %10
%14 = tail call i64 @test_read(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([258 x i8], [258 x i8]* @.str.6, i64 0, i64 0), i32 257)
%15 = icmp eq i64 %14, 0
br i1 %15, label %106, label %16
16: ; preds = %13
%17 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.7, i64 0, i64 0))
%18 = tail call i64 @test_read(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0), i32 10)
%19 = icmp eq i64 %18, 0
br i1 %19, label %20, label %106
20: ; preds = %16
%21 = tail call i64 @test_read(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.11, i64 0, i64 0), i32 10)
%22 = icmp eq i64 %21, 0
br i1 %22, label %23, label %106
23: ; preds = %20
%24 = tail call i64 @test_read(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.13, i64 0, i64 0), i32 14)
%25 = icmp eq i64 %24, 0
br i1 %25, label %26, label %106
26: ; preds = %23
%27 = tail call i64 @test_read(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i32 0)
%28 = icmp eq i64 %27, 0
br i1 %28, label %29, label %106
29: ; preds = %26
%30 = tail call i64 @test_read(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.16, i64 0, i64 0), i32 11)
%31 = icmp eq i64 %30, 0
br i1 %31, label %32, label %106
32: ; preds = %29
%33 = tail call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.18, i64 0, i64 0), i32 10)
%34 = icmp eq i64 %33, 0
br i1 %34, label %35, label %106
35: ; preds = %32
%36 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.19, i64 0, i64 0))
%37 = tail call i64 @test_read(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.20, i64 0, i64 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0), i32 20)
%38 = icmp eq i64 %37, 0
br i1 %38, label %39, label %106
39: ; preds = %35
%40 = tail call i64 @test_read(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.22, i64 0, i64 0), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.23, i64 0, i64 0), i32 18)
%41 = icmp eq i64 %40, 0
br i1 %41, label %42, label %106
42: ; preds = %39
%43 = tail call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.24, i64 0, i64 0), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.25, i64 0, i64 0), i32 18)
%44 = icmp eq i64 %43, 0
br i1 %44, label %45, label %106
45: ; preds = %42
%46 = tail call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.26, i64 0, i64 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.27, i64 0, i64 0), i32 16)
%47 = icmp eq i64 %46, 0
br i1 %47, label %48, label %106
48: ; preds = %45
%49 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.28, i64 0, i64 0))
%50 = tail call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.29, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.30, i64 0, i64 0), i32 13)
%51 = icmp eq i64 %50, 0
br i1 %51, label %52, label %106
52: ; preds = %48
%53 = tail call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.31, i64 0, i64 0), i32 11)
%54 = icmp eq i64 %53, 0
br i1 %54, label %55, label %106
55: ; preds = %52
%56 = tail call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.32, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.33, i64 0, i64 0), i32 9)
%57 = icmp eq i64 %56, 0
br i1 %57, label %58, label %106
58: ; preds = %55
%59 = tail call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.34, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.35, i64 0, i64 0), i32 13)
%60 = icmp eq i64 %59, 0
br i1 %60, label %61, label %106
61: ; preds = %58
%62 = tail call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.36, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.37, i64 0, i64 0), i32 11)
%63 = icmp eq i64 %62, 0
br i1 %63, label %64, label %106
64: ; preds = %61
%65 = tail call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.38, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.39, i64 0, i64 0), i32 9)
%66 = icmp eq i64 %65, 0
br i1 %66, label %67, label %106
67: ; preds = %64
%68 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.40, i64 0, i64 0))
%69 = tail call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.41, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.42, i64 0, i64 0), i32 13)
%70 = icmp eq i64 %69, 0
br i1 %70, label %71, label %106
71: ; preds = %67
%72 = tail call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.34, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.43, i64 0, i64 0), i32 13)
%73 = icmp eq i64 %72, 0
br i1 %73, label %74, label %106
74: ; preds = %71
%75 = tail call i64 @test_read(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.44, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.45, i64 0, i64 0), i32 13)
%76 = icmp eq i64 %75, 0
br i1 %76, label %77, label %106
77: ; preds = %74
%78 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.46, i64 0, i64 0))
%79 = tail call i64 @test_or(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.47, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.48, i64 0, i64 0), i32 1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i64 0, i64 0), i32 6)
%80 = icmp eq i64 %79, 0
br i1 %80, label %81, label %106
81: ; preds = %77
%82 = tail call i64 @test_or(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.50, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.51, i64 0, i64 0), i32 3, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i64 0, i64 0), i32 6)
%83 = icmp eq i64 %82, 0
br i1 %83, label %84, label %106
84: ; preds = %81
%85 = tail call i64 @test_or(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.52, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.53, i64 0, i64 0), i32 5, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i64 0, i64 0), i32 6)
%86 = icmp eq i64 %85, 0
br i1 %86, label %87, label %106
87: ; preds = %84
%88 = tail call i64 @test_or(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.54, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.55, i64 0, i64 0), i32 12, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i64 0, i64 0), i32 6)
%89 = icmp eq i64 %88, 0
br i1 %89, label %90, label %106
90: ; preds = %87
%91 = tail call i64 @test_or(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.50, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.56, i64 0, i64 0), i32 1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i64 0, i64 0), i32 6)
%92 = icmp eq i64 %91, 0
br i1 %92, label %93, label %106
93: ; preds = %90
%94 = tail call i64 @test_or(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.52, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.57, i64 0, i64 0), i32 3, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i64 0, i64 0), i32 6)
%95 = icmp eq i64 %94, 0
br i1 %95, label %96, label %106
96: ; preds = %93
%97 = tail call i64 @test_or(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.57, i64 0, i64 0), i32 3, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i32 0)
%98 = icmp eq i64 %97, 0
br i1 %98, label %106, label %99
99: ; preds = %96
%100 = tail call i64 @test_or(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.57, i64 0, i64 0), i32 3, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.58, i64 0, i64 0), i32 1)
%101 = icmp eq i64 %100, 0
br i1 %101, label %106, label %102
102: ; preds = %99
%103 = tail call i64 @test_or(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.57, i64 0, i64 0), i32 3, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.59, i64 0, i64 0), i32 12)
%104 = icmp eq i64 %103, 0
%105 = select i1 %104, i32* @EXIT_FAILURE, i32* @EXIT_SUCCESS
br label %106
106: ; preds = %102, %99, %96, %93, %90, %87, %84, %81, %77, %74, %71, %67, %64, %61, %58, %55, %52, %48, %45, %42, %39, %35, %32, %29, %26, %23, %20, %16, %13, %10, %7, %4, %0
%107 = phi i32* [ @EXIT_FAILURE, %0 ], [ @EXIT_FAILURE, %4 ], [ @EXIT_FAILURE, %7 ], [ @EXIT_FAILURE, %10 ], [ @EXIT_FAILURE, %13 ], [ @EXIT_FAILURE, %16 ], [ @EXIT_FAILURE, %20 ], [ @EXIT_FAILURE, %23 ], [ @EXIT_FAILURE, %26 ], [ @EXIT_FAILURE, %29 ], [ @EXIT_FAILURE, %32 ], [ @EXIT_FAILURE, %35 ], [ @EXIT_FAILURE, %39 ], [ @EXIT_FAILURE, %42 ], [ @EXIT_FAILURE, %45 ], [ @EXIT_FAILURE, %48 ], [ @EXIT_FAILURE, %52 ], [ @EXIT_FAILURE, %55 ], [ @EXIT_FAILURE, %58 ], [ @EXIT_FAILURE, %61 ], [ @EXIT_FAILURE, %64 ], [ @EXIT_FAILURE, %67 ], [ @EXIT_FAILURE, %71 ], [ @EXIT_FAILURE, %74 ], [ @EXIT_FAILURE, %77 ], [ @EXIT_FAILURE, %81 ], [ @EXIT_FAILURE, %84 ], [ @EXIT_FAILURE, %87 ], [ @EXIT_FAILURE, %90 ], [ @EXIT_FAILURE, %93 ], [ @EXIT_FAILURE, %96 ], [ @EXIT_FAILURE, %99 ], [ %105, %102 ]
%108 = load i32, i32* %107
ret i32 %108
}