#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 /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stdout;
void print_usage() {
  fprintf(
      stdout,
      "usage: depqbf [ <option> ... ] [ <in-file> ]\n"
      "\n"
      "  where <in-file> is a file in (Q)DIMACS format (default: stdin)\n"
      "  and <option> is any combination of the following:\n"
      "\n"
      "  Note: see function 'qdpll_configure' in file 'qdpll.c' for further, "
      "undocumented\n"
      "    options which are not listed here. However, many of those are "
      "experimental.\n"
      "\n"
      "  -h, --help                      display usage information\n"
      "  -v                              enable verbosity incrementally (at "
      "most '-v -v')\n"
      "  --pretty-print                  print the parsed formula after "
      "cleaning up (delete tautologies,\n"
      "                                    superfluous variables, quantifier "
      "blocks, and literals; sort \n"
      "                                    literals in clauses by quantifier "
      "nesting levels and IDs).\n"
      "  --incremental-use               Relevant ONLY for API use: enable "
      "incremental solving. \n"
      "                                   Must be combined with "
      "'--dep-man=simple'. \n"
      "  --qdo                           QDIMACS output generation (partial "
      "certificate):\n"
      "                                    If the outermost (i.e. leftmost) "
      "quantifier block\n"
      "                                    of a satisfiable QBF is "
      "existentially quantified,\n"
      "                                    then print an assignment to the "
      "variables of this\n"
      "                                    block (and dual for unsatisfiable "
      "QBFs and\n"
      "                                    universal variables from the "
      "outermost block,\n"
      "                                    if that block is universally "
      "quantified).\n"
      "  --traditional-qcdcl             apply a traditional variant of clause "
      "and cube learning (QCDCL),\n"
      "                                    which was applied in previous "
      "versions of DepQBF.\n"
      "                                    In this version, by default lazy "
      "QPUP-based QCDCL is applied.\n"
      "  --long-dist-res                 Apply long-distance resolution in "
      "constraint learning. \n"
      "                                    Must be combined with "
      "'--traditional-qcdcl' and '--dep-man=simple'.\n"
      "  --no-lazy-qpup                  disable lazy QPUP-based QCDCL and "
      "carry out all resolution steps.\n"
      "  --no-qpup-cdcl                  apply traditional QCDCL for clause "
      "learning (instead of QPUP).\n"
      "  --no-qpup-sdcl                  apply traditional QCDCL for cube "
      "learning (instead of QPUP).\n"
      "  --trace[=<format>]              dump trace in <format> to <stdout>\n"
      "                                    format: qrp  ... ascii QRP format "
      "(default)\n"
      "                                            bqrp ... binary QRP format\n"
      "                                    NOTE: tracing must be combined with "
      "options '--dep-man=simple' and\n"
      "                                          either '--traditional-qcdcl' "
      "(which disables QPUP-based QCDCL)\n"
      "                                          or '--no-lazy-qpup' (to "
      "enable tracing with QPUP-based QCDCL).\n");
  fprintf(stdout,
          "  --dep-man=<val>                 set dependency manager: if "
          "<val>=qdag (default) then the solver\n"
          "                                    uses the standard dependency "
          "scheme; if <val>=simple then the\n"
          "                                    solver uses the given "
          "quantifier prefix of the input formula\n"
          "  --no-cdcl                       disable conflict-driven clause "
          "learning and\n"
          "                                    backtrack chronologically from "
          "conflicts\n"
          "  --no-sdcl                       disable solution-driven cube "
          "learning and\n"
          "                                    backtrack chronologically from "
          "solutions\n"
          "  --no-pure-literals              disable pure literal detection\n"
          "  --no-spure-literals             include ALL constraints for pure "
          "literal detection (expensive!) \n"
          "  --no-unit-mtf                   no move-to-front (MTF) of learnt "
          "constraints which became unit\n"
          "  --no-res-mtf                    no move-to-front (MTF) of learnt "
          "constraints which became empty\n"
          "  --max-dec=<val>                 stop after <val> decisions have "
          "been made\n"
          "  --lclauses-init-size=<val>      initially allow <val> clauses to "
          "be learned before resizing the clause list\n"
          "  --lcubes-init-size=<val>        initially allow <val> cubes to be "
          "learned before resizing the cube list\n"
          "  --lclauses-resize-value=<val>   increase capacity of learned "
          "clauses list by <val>\n"
          "  --lcubes-resize-value=<val>     increase capacity of learned "
          "cubes list by <val>\n"
          "  --orestart-dist-init=<val>      set initial distance of outer "
          "restarts to <val> (default 10)\n"
          "  --orestart-dist-inc=<val>       increase distance of outer "
          "restarts by <val> (default 5)\n"
          "  --irestart-dist-init=<val>      set initial distance of inner "
          "restarts to <val> (default 100)\n"
          "  --irestart-dist-inc=<val>       increase distance of inner "
          "restarts by <val> (default 10)\n"
          "  --max-dec=<val>                 Abort after <val> assignments by "
          "decision making.\n"
          "  --max-btracks=<val>             Abort after <val> backtracks.\n"
          "  --max-secs=<val>                Abort after <val> seconds.\n"
          "\n");
}


x86 assembly (clang, -O0):
<print_usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x3ec5(%rip),%rax
mov    (%rax),%edi
lea    0xedc(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x3eb0(%rip),%rax
mov    (%rax),%edi
lea    0x19c4(%rip),%rsi
call   1030 <fprintf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_usage>:
push   %rbx
mov    0x3ec8(%rip),%rbx
mov    (%rbx),%edi
lea    0xedf(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0x19ce(%rip),%rsi
pop    %rbx
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stdout = global i32 0
@.str = [2813 x i8] c"usage: depqbf [ <option> ... ] [ <in-file> ]\0A\0A where <in-file> is a file in (Q)DIMACS format (default: stdin)\0A and <option> is any combination of the following:\0A\0A Note: see function 'qdpll_configure' in file 'qdpll.c' for further, undocumented\0A options which are not listed here. However, many of those are experimental.\0A\0A -h, --help display usage information\0A -v enable verbosity incrementally (at most '-v -v')\0A --pretty-print print the parsed formula after cleaning up (delete tautologies,\0A superfluous variables, quantifier blocks, and literals; sort \0A literals in clauses by quantifier nesting levels and IDs).\0A --incremental-use Relevant ONLY for API use: enable incremental solving. \0A Must be combined with '--dep-man=simple'. \0A --qdo QDIMACS output generation (partial certificate):\0A If the outermost (i.e. leftmost) quantifier block\0A of a satisfiable QBF is existentially quantified,\0A then print an assignment to the variables of this\0A block (and dual for unsatisfiable QBFs and\0A universal variables from the outermost block,\0A if that block is universally quantified).\0A --traditional-qcdcl apply a traditional variant of clause and cube learning (QCDCL),\0A which was applied in previous versions of DepQBF.\0A In this version, by default lazy QPUP-based QCDCL is applied.\0A --long-dist-res Apply long-distance resolution in constraint learning. \0A Must be combined with '--traditional-qcdcl' and '--dep-man=simple'.\0A --no-lazy-qpup disable lazy QPUP-based QCDCL and carry out all resolution steps.\0A --no-qpup-cdcl apply traditional QCDCL for clause learning (instead of QPUP).\0A --no-qpup-sdcl apply traditional QCDCL for cube learning (instead of QPUP).\0A --trace[=<format>] dump trace in <format> to <stdout>\0A format: qrp ... ascii QRP format (default)\0A bqrp ... binary QRP format\0A NOTE: tracing must be combined with options '--dep-man=simple' and\0A either '--traditional-qcdcl' (which disables QPUP-based QCDCL)\0A or '--no-lazy-qpup' (to enable tracing with QPUP-based QCDCL).\0A\00"
@.str.1 = [2005 x i8] c" --dep-man=<val> set dependency manager: if <val>=qdag (default) then the solver\0A uses the standard dependency scheme; if <val>=simple then the\0A solver uses the given quantifier prefix of the input formula\0A --no-cdcl disable conflict-driven clause learning and\0A backtrack chronologically from conflicts\0A --no-sdcl disable solution-driven cube learning and\0A backtrack chronologically from solutions\0A --no-pure-literals disable pure literal detection\0A --no-spure-literals include ALL constraints for pure literal detection (expensive!) \0A --no-unit-mtf no move-to-front (MTF) of learnt constraints which became unit\0A --no-res-mtf no move-to-front (MTF) of learnt constraints which became empty\0A --max-dec=<val> stop after <val> decisions have been made\0A --lclauses-init-size=<val> initially allow <val> clauses to be learned before resizing the clause list\0A --lcubes-init-size=<val> initially allow <val> cubes to be learned before resizing the cube list\0A --lclauses-resize-value=<val> increase capacity of learned clauses list by <val>\0A --lcubes-resize-value=<val> increase capacity of learned cubes list by <val>\0A --orestart-dist-init=<val> set initial distance of outer restarts to <val> (default 10)\0A --orestart-dist-inc=<val> increase distance of outer restarts by <val> (default 5)\0A --irestart-dist-init=<val> set initial distance of inner restarts to <val> (default 100)\0A --irestart-dist-inc=<val> increase distance of inner restarts by <val> (default 10)\0A --max-dec=<val> Abort after <val> assignments by decision making.\0A --max-btracks=<val> Abort after <val> backtracks.\0A --max-secs=<val> Abort after <val> seconds.\0A\0A\00"
define void @print_usage() {
%1 = load i32, i32* @stdout
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([2813 x i8], [2813 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @stdout
%4 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([2005 x i8], [2005 x i8]* @.str.1, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stdout = global i32 0
@.str = [2813 x i8] c"usage: depqbf [ <option> ... ] [ <in-file> ]\0A\0A where <in-file> is a file in (Q)DIMACS format (default: stdin)\0A and <option> is any combination of the following:\0A\0A Note: see function 'qdpll_configure' in file 'qdpll.c' for further, undocumented\0A options which are not listed here. However, many of those are experimental.\0A\0A -h, --help display usage information\0A -v enable verbosity incrementally (at most '-v -v')\0A --pretty-print print the parsed formula after cleaning up (delete tautologies,\0A superfluous variables, quantifier blocks, and literals; sort \0A literals in clauses by quantifier nesting levels and IDs).\0A --incremental-use Relevant ONLY for API use: enable incremental solving. \0A Must be combined with '--dep-man=simple'. \0A --qdo QDIMACS output generation (partial certificate):\0A If the outermost (i.e. leftmost) quantifier block\0A of a satisfiable QBF is existentially quantified,\0A then print an assignment to the variables of this\0A block (and dual for unsatisfiable QBFs and\0A universal variables from the outermost block,\0A if that block is universally quantified).\0A --traditional-qcdcl apply a traditional variant of clause and cube learning (QCDCL),\0A which was applied in previous versions of DepQBF.\0A In this version, by default lazy QPUP-based QCDCL is applied.\0A --long-dist-res Apply long-distance resolution in constraint learning. \0A Must be combined with '--traditional-qcdcl' and '--dep-man=simple'.\0A --no-lazy-qpup disable lazy QPUP-based QCDCL and carry out all resolution steps.\0A --no-qpup-cdcl apply traditional QCDCL for clause learning (instead of QPUP).\0A --no-qpup-sdcl apply traditional QCDCL for cube learning (instead of QPUP).\0A --trace[=<format>] dump trace in <format> to <stdout>\0A format: qrp ... ascii QRP format (default)\0A bqrp ... binary QRP format\0A NOTE: tracing must be combined with options '--dep-man=simple' and\0A either '--traditional-qcdcl' (which disables QPUP-based QCDCL)\0A or '--no-lazy-qpup' (to enable tracing with QPUP-based QCDCL).\0A\00"
@.str.1 = [2005 x i8] c" --dep-man=<val> set dependency manager: if <val>=qdag (default) then the solver\0A uses the standard dependency scheme; if <val>=simple then the\0A solver uses the given quantifier prefix of the input formula\0A --no-cdcl disable conflict-driven clause learning and\0A backtrack chronologically from conflicts\0A --no-sdcl disable solution-driven cube learning and\0A backtrack chronologically from solutions\0A --no-pure-literals disable pure literal detection\0A --no-spure-literals include ALL constraints for pure literal detection (expensive!) \0A --no-unit-mtf no move-to-front (MTF) of learnt constraints which became unit\0A --no-res-mtf no move-to-front (MTF) of learnt constraints which became empty\0A --max-dec=<val> stop after <val> decisions have been made\0A --lclauses-init-size=<val> initially allow <val> clauses to be learned before resizing the clause list\0A --lcubes-init-size=<val> initially allow <val> cubes to be learned before resizing the cube list\0A --lclauses-resize-value=<val> increase capacity of learned clauses list by <val>\0A --lcubes-resize-value=<val> increase capacity of learned cubes list by <val>\0A --orestart-dist-init=<val> set initial distance of outer restarts to <val> (default 10)\0A --orestart-dist-inc=<val> increase distance of outer restarts by <val> (default 5)\0A --irestart-dist-init=<val> set initial distance of inner restarts to <val> (default 100)\0A --irestart-dist-inc=<val> increase distance of inner restarts by <val> (default 10)\0A --max-dec=<val> Abort after <val> assignments by decision making.\0A --max-btracks=<val> Abort after <val> backtracks.\0A --max-secs=<val> Abort after <val> seconds.\0A\0A\00"
define void @print_usage() {
%1 = load i32, i32* @stdout
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([2813 x i8], [2813 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @stdout
%4 = tail call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([2005 x i8], [2005 x i8]* @.str.1, i64 0, i64 0))
ret void
}