#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*/ errno;
char *strerror(int /*<<< orphan*/);
const char *msp_strerror_internal(int err) {
  const char *ret = "Unknown error";
  switch (err) {
  case 0:
    ret = "Normal exit condition. This is not an error!";
    goto out;
  case -2:
    ret = "Out of memory.";
    break;
  case -1:
    ret = "Generic error; please file a bug report";
    break;
  case -4:
    ret = "File format error";
    break;
  case -6:
    ret = "Bad simulator state. Initialise or reset must be called.";
    break;
  case -9:
    ret = "Supplied buffer if too small";
    break;
  case -10:
    ret = "Demographic events must be time sorted.";
    break;
  case -11:
    ret = "Population Overflow occurred.";
    break;
  case -12:
    ret = "Links Overflow occurred.";
    break;
  case -8:
    ret = "Object reference out of bounds";
    break;
  case -16:
    ret = "Bad record ordering requested";
    break;
  case -17:
    ret = "Bad mutation provided";
    break;
  case -7:
    ret = "Bad parameter value provided";
    break;
  case -18:
    ret = "Operation cannot be performed in current configuration";
    break;
  case -19:
    ret = "Bad population configuration provided.";
    break;
  case -27:
    ret = "Bad population size provided. Must be > 0.";
    break;
  case -14:
    ret = "Population ID out of bounds.";
    break;
  case -20:
    ret = "Bad migration matrix provided.";
    break;
  case -21:
    ret = "Bad migration matrix index provided.";
    break;
  case -22:
    ret = "Cannot set diagonal migration matrix elements.";
    break;
  case -23:
    ret = "Infinite waiting time until next simulation event.";
    break;
  case -24:
    ret = "Internal error; please file a bug report.";
    break;
  case -25:
    ret = "Source and destination populations equal.";
    break;
  case -26:
    ret = "Bad recombination map provided.";
    break;
  case -49:
    ret = "At least two samples needed.";
    break;
  case -50:
    ret = "At least one record must be supplied";
    break;
  case -36:
    ret = "Edges must be listed in (time[parent], child, left) order;"
          " time[parent] order violated";
    break;
  case -37:
    ret = "All edges for a given parent must be contiguous";
    break;
  case -38:
    ret = "Edges must be listed in (time[parent], child, left) order;"
          " child order violated";
    break;
  case -39:
    ret = "Edges must be listed in (time[parent], child, left) order;"
          " left order violated";
    break;
  case -34:
    ret = "Edge in parent is null.";
    break;
  case -35:
    ret = "Edge in parent is null.";
    break;
  case -40:
    ret = "time[parent] must be greater than time[child]";
    break;
  case -41:
    ret = "Bad edge interval where right <= left";
    break;
  case -42:
    ret = "Duplicate edges provided.";
    break;
  case -32:
    ret = "Cannot simplify the tree sequence; no output records.";
    break;
  case -28:
    ret = "Bad sample configuration provided.";
    break;
  case -30:
    ret = "tskit file version too old. Please upgrade using the "
          "'msp upgrade' command";
    break;
  case -31:
    ret = "tskit file version is too new for this instance. "
          "Please upgrade msprime to the latest version.";
    break;
  case -15:
    ret = "Duplicate value provided in tracked leaf list.";
    break;
  case -5:
    ret = "Cannot change the state of the tree sequence when "
          "other objects reference it. Make sure all trees are freed first.";
    break;
  case -33:
    ret = "Model error. Either a bad model, or the requested operation "
          "is not supported for the current model";
    break;
  case -43:
    ret = "object not initialised. Please file a bug report.";
    break;
  case -46:
    ret = "Cannot have more than one mutation at a node for a given site.";
    break;
  case -47:
    ret = "Only binary mutations are supported for this operation.";
    break;
  case -48:
    ret = "Inconsistent mutations: state already equal to derived state.";
    break;
  case -51:
    ret = "Coordinate not found.";
    break;
  case -52:
    ret = "Malformed nodes array.";
    break;
  case -53:
    ret = "Malformed array of children.";
    break;
  case -54:
    ret = "Site out of bounds";
    break;
  case -55:
    ret = "Node out of bounds";
    break;
  case -56:
    ret = "Mismatch in stored total column length and sum of row lengths";
    break;
  case -58:
    ret = "Only single char mutations supported.";
    break;
  case -59:
    ret = "Sites must be provided in strictly increasing position order.";
    break;
  case -60:
    ret = "Sites positions must be between 0 and sequence_length";
    break;
  case -61:
    ret = "Mutations must be provided in non-decreasing site order";
    break;
  case -63:
    ret = "All edges for a given parent must be adjacent.";
    break;
  case -64:
    ret = "Bad edges: contradictory children for a given parent over "
          "an interval.";
    break;
  case -65:
    ret = "Bad edges: multiple definitions of a given parent over an interval";
    break;
  case -66:
    ret = "Sequence length must be > 0.";
    break;
  case -75:
    ret = "Left coordinate must be >= 0";
    break;
  case -67:
    ret = "Right coordinate > sequence length.";
    break;
  case -68:
    ret = "mutation ID out of bounds";
    break;
  case -69:
    ret = "Specified parent mutation is at a different site.";
    break;
  case -70:
    ret = "Parent mutation refers to itself.";
    break;
  case -71:
    ret = "Parent mutation ID must be < current ID.";
    break;
  case -44:
    ret = "Bad offset provided in input array.";
    break;
  case -45:
    ret = "Cannot have more than 255 alleles.";
    break;
  case -72:
    ret = "Individual ID out of bounds";
    break;
  case -73:
    ret = "Error generating UUID";
    break;
  case -57:
    ret = "Duplicate site positions.";
    break;
  case -29:
    ret = "Bad table position provided to truncate/reset.";
    break;
  case -74:
    ret = "Invalid edge index value.";
    break;
  case -76:
    ret = "Table collection must be indexed.";
    break;
  case -77:
    ret = "Migrations currently not supported in simplify. Please open an "
          "issue on GitHub if this operation is important to you.";
    break;
  case -78:
    ret = "The specified tree sequence is not a compatible starting point "
          "for the current simulation";
    break;
  case -79:
    ret = "The specified start_time and from_ts are not compatible. All "
          "node times in the tree sequence must be <= start_time.";
    break;
  case -80:
    ret = "start_time must be >= 0.";
    break;
  case -81:
    ret = "demographic event time must be >= start_time.";
    break;
  case -82:
    ret = "The specified recombination map is cannot translate the coordinates"
          "for the specified tree sequence. It is either too coarse (num_loci "
          "is too small) or contains zero recombination rates. Please either "
          "increase the number of loci or recombination rate";
    break;
  case -83:
    ret = "The simulation model supplied resulted in a parent node having "
          "a time value <= to its child. This can occur either as a result "
          "of multiple bottlenecks happening at the same time or because of "
          "numerical imprecision with very small population sizes.";
    break;
  case -84:
    ret = "Only infinite sites mutations are supported for this operation.";
    break;
  case -85:
    ret = "GSL numerical integration failed. Please check the stderr for "
          "details.";
    break;
  case -86:
    ret = "Sweep locus must be between 0 and num_loci.";
    break;
  case -87:
    ret = "Time values must be > 0 and in increasing order.";
    break;
  case -88:
    ret = "Allele frequency values must be between 0 and 1.";
    break;
  case -89:
    ret = "Trajectory must contain at least one time point.";
    break;
  case -3:
    if (errno != 0) {
      ret = strerror(errno);
    } else {
      ret = "Unspecified IO error";
    }
    break;
  default:
    ret = "Error occurred generating error string. Please file a bug "
          "report!";
    break;
  }
out:
  return ret;
}


x86 assembly (clang, -O0):
<msp_strerror_internal>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %edi,-0x4(%rbp)
lea    0x1046(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x4(%rbp),%eax
add    $0x59,%eax
mov    %eax,%ecx
mov    %rcx,-0x18(%rbp)
sub    $0x59,%eax
ja     16f6 <msp_strerror_internal+0x5e6>
mov    -0x18(%rbp),%rax
lea    0xeba(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1020(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1706 <msp_strerror_internal+0x5f6>
lea    0x103d(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x103c(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1054(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1056(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x107f(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x108c(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x10a4(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x10b2(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x10bb(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x10ca(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x10d8(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x10de(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x10eb(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1112(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1129(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1144(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1151(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1160(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1175(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1194(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x11b7(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x11d1(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x11eb(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x11fb(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1208(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x121d(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1264(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1284(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x12c4(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1303(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x12f3(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x12fb(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1319(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x132f(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1339(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x135f(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1372(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x13ad(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x13fc(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x141b(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x147e(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x14d1(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x14f3(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1522(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x154a(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1578(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x157e(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1585(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1592(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1595(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1598(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x15c6(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x15dc(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x160a(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1630(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1658(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1677(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x16ae(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x16e1(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x16ee(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x16fb(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x170f(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1719(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x173b(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x174d(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1766(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x177a(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x178d(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1799(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x179f(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x17a9(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x17c8(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x17d2(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x17e4(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x184a(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1894(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x18f8(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1901(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x191f(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1a09(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1af1(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1b21(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1b58(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1b74(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1b95(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1bb6(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
mov    0x391a(%rip),%rax
cmpl   $0x0,(%rax)
je     16e6 <msp_strerror_internal+0x5d6>
mov    0x390a(%rip),%rax
mov    (%rax),%edi
call   1030 <strerror@plt>
mov    %rax,-0x10(%rbp)
jmp    16f1 <msp_strerror_internal+0x5e1>
lea    0x1bb0(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1701 <msp_strerror_internal+0x5f1>
lea    0x1bb5(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1706 <msp_strerror_internal+0x5f6>
mov    -0x10(%rbp),%rax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<msp_strerror_internal>:
add    $0x59,%edi
cmp    $0x59,%edi
ja     1213 <msp_strerror_internal+0x103>
lea    0x1045(%rip),%rax
lea    0xed6(%rip),%rcx
movslq (%rcx,%rdi,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
lea    0x14f1(%rip),%rax
ret
lea    0x211c(%rip),%rax
ret
lea    0x20e3(%rip),%rax
ret
lea    0x20aa(%rip),%rax
ret
lea    0x2076(%rip),%rax
ret
lea    0x2027(%rip),%rax
ret
lea    0x1fdf(%rip),%rax
ret
lea    0x1edf(%rip),%rax
ret
lea    0x1ddd(%rip),%rax
ret
lea    0x1da7(%rip),%rax
ret
lea    0x1d86(%rip),%rax
ret
lea    0x1d0a(%rip),%rax
ret
lea    0x1ca8(%rip),%rax
ret
lea    0x1c2a(%rip),%rax
ret
lea    0x1c00(%rip),%rax
ret
lea    0x1a44(%rip),%rax
ret
lea    0x1bd6(%rip),%rax
ret
lea    0x1b6f(%rip),%rax
ret
lea    0x1b4b(%rip),%rax
ret
lea    0x1ad3(%rip),%rax
ret
lea    0x1aa9(%rip),%rax
ret
lea    0x1a6f(%rip),%rax
ret
lea    0x1a4d(%rip),%rax
ret
lea    0x1a21(%rip),%rax
ret
lea    0x19df(%rip),%rax
ret
lea    0x1994(%rip),%rax
ret
lea    0x1945(%rip),%rax
ret
lea    0x190e(%rip),%rax
ret
lea    0x208a(%rip),%rax
ret
lea    0x18c6(%rip),%rax
ret
lea    0x1888(%rip),%rax
ret
lea    0x1842(%rip),%rax
ret
lea    0x1814(%rip),%rax
ret
lea    0x1b05(%rip),%rax
ret
lea    0x17c6(%rip),%rax
ret
lea    0x17ab(%rip),%rax
ret
lea    0x1790(%rip),%rax
ret
lea    0x176b(%rip),%rax
ret
lea    0x174c(%rip),%rax
ret
lea    0x172e(%rip),%rax
ret
lea    0x1266(%rip),%rax
ret
lea    0x1241(%rip),%rax
ret
lea    0x16d8(%rip),%rax
ret
lea    0x1698(%rip),%rax
ret
lea    0x1651(%rip),%rax
ret
lea    0x1a50(%rip),%rax
ret
lea    0x1a24(%rip),%rax
ret
lea    0x1607(%rip),%rax
ret
lea    0x13dd(%rip),%rax
ret
lea    0x13af(%rip),%rax
ret
lea    0x1379(%rip),%rax
ret
lea    0x130a(%rip),%rax
ret
lea    0x12b2(%rip),%rax
ret
lea    0x127a(%rip),%rax
ret
lea    0x121b(%rip),%rax
ret
lea    0x1564(%rip),%rax
ret
lea    0x13b7(%rip),%rax
ret
lea    0x1453(%rip),%rax
ret
lea    0x1400(%rip),%rax
ret
lea    0x1a4f(%rip),%rax
ret
lea    0x13cd(%rip),%rax
ret
lea    0x103f(%rip),%rax
ret
lea    0x1179(%rip),%rax
ret
lea    0x1147(%rip),%rax
ret
lea    0x1115(%rip),%rax
ret
lea    0x10da(%rip),%rax
ret
lea    0x10a3(%rip),%rax
ret
lea    0x1076(%rip),%rax
ret
lea    0x104f(%rip),%rax
ret
lea    0xfd8(%rip),%rax
ret
lea    0xf99(%rip),%rax
ret
lea    0xf5e(%rip),%rax
ret
lea    0xf38(%rip),%rax
ret
lea    0x1432(%rip),%rax
ret
lea    0x1002(%rip),%rax
ret
lea    0xee8(%rip),%rax
ret
lea    0xec2(%rip),%rax
ret
lea    0xe92(%rip),%rax
ret
lea    0xe6d(%rip),%rax
ret
lea    0xee1(%rip),%rax
ret
lea    0xf2c(%rip),%rax
ret
lea    0xe1c(%rip),%rax
ret
lea    0x1419(%rip),%rax
ret
lea    0xdfa(%rip),%rax
ret
mov    0x3c06(%rip),%rax
mov    (%rax),%edi
test   %edi,%edi
je     13f5 <msp_strerror_internal+0x2e5>
jmp    1030 <strerror@plt>
lea    0xda9(%rip),%rax
ret
lea    0xdb0(%rip),%rax
ret
lea    0x1e93(%rip),%rax
ret

LLVM IR (-O0):
@.str = [14 x i8] c"Unknown error\00"
@.str.1 = [45 x i8] c"Normal exit condition. This is not an error!\00"
@.str.2 = [15 x i8] c"Out of memory.\00"
@.str.3 = [40 x i8] c"Generic error; please file a bug report\00"
@.str.4 = [18 x i8] c"File format error\00"
@.str.5 = [57 x i8] c"Bad simulator state. Initialise or reset must be called.\00"
@.str.6 = [29 x i8] c"Supplied buffer if too small\00"
@.str.7 = [40 x i8] c"Demographic events must be time sorted.\00"
@.str.8 = [30 x i8] c"Population Overflow occurred.\00"
@.str.9 = [25 x i8] c"Links Overflow occurred.\00"
@.str.10 = [31 x i8] c"Object reference out of bounds\00"
@.str.11 = [30 x i8] c"Bad record ordering requested\00"
@.str.12 = [22 x i8] c"Bad mutation provided\00"
@.str.13 = [29 x i8] c"Bad parameter value provided\00"
@.str.14 = [55 x i8] c"Operation cannot be performed in current configuration\00"
@.str.15 = [39 x i8] c"Bad population configuration provided.\00"
@.str.16 = [43 x i8] c"Bad population size provided. Must be > 0.\00"
@.str.17 = [29 x i8] c"Population ID out of bounds.\00"
@.str.18 = [31 x i8] c"Bad migration matrix provided.\00"
@.str.19 = [37 x i8] c"Bad migration matrix index provided.\00"
@.str.20 = [47 x i8] c"Cannot set diagonal migration matrix elements.\00"
@.str.21 = [51 x i8] c"Infinite waiting time until next simulation event.\00"
@.str.22 = [42 x i8] c"Internal error; please file a bug report.\00"
@.str.23 = [42 x i8] c"Source and destination populations equal.\00"
@.str.24 = [32 x i8] c"Bad recombination map provided.\00"
@.str.25 = [29 x i8] c"At least two samples needed.\00"
@.str.26 = [37 x i8] c"At least one record must be supplied\00"
@.str.27 = [87 x i8] c"Edges must be listed in (time[parent], child, left) order; time[parent] order violated\00"
@.str.28 = [48 x i8] c"All edges for a given parent must be contiguous\00"
@.str.29 = [80 x i8] c"Edges must be listed in (time[parent], child, left) order; child order violated\00"
@.str.30 = [79 x i8] c"Edges must be listed in (time[parent], child, left) order; left order violated\00"
@.str.31 = [24 x i8] c"Edge in parent is null.\00"
@.str.32 = [46 x i8] c"time[parent] must be greater than time[child]\00"
@.str.33 = [38 x i8] c"Bad edge interval where right <= left\00"
@.str.34 = [26 x i8] c"Duplicate edges provided.\00"
@.str.35 = [54 x i8] c"Cannot simplify the tree sequence; no output records.\00"
@.str.36 = [35 x i8] c"Bad sample configuration provided.\00"
@.str.37 = [75 x i8] c"tskit file version too old. Please upgrade using the 'msp upgrade' command\00"
@.str.38 = [95 x i8] c"tskit file version is too new for this instance. Please upgrade msprime to the latest version.\00"
@.str.39 = [47 x i8] c"Duplicate value provided in tracked leaf list.\00"
@.str.40 = [115 x i8] c"Cannot change the state of the tree sequence when other objects reference it. Make sure all trees are freed first.\00"
@.str.41 = [99 x i8] c"Model error. Either a bad model, or the requested operation is not supported for the current model\00"
@.str.42 = [50 x i8] c"object not initialised. Please file a bug report.\00"
@.str.43 = [63 x i8] c"Cannot have more than one mutation at a node for a given site.\00"
@.str.44 = [56 x i8] c"Only binary mutations are supported for this operation.\00"
@.str.45 = [62 x i8] c"Inconsistent mutations: state already equal to derived state.\00"
@.str.46 = [22 x i8] c"Coordinate not found.\00"
@.str.47 = [23 x i8] c"Malformed nodes array.\00"
@.str.48 = [29 x i8] c"Malformed array of children.\00"
@.str.49 = [19 x i8] c"Site out of bounds\00"
@.str.50 = [19 x i8] c"Node out of bounds\00"
@.str.51 = [62 x i8] c"Mismatch in stored total column length and sum of row lengths\00"
@.str.52 = [38 x i8] c"Only single char mutations supported.\00"
@.str.53 = [62 x i8] c"Sites must be provided in strictly increasing position order.\00"
@.str.54 = [54 x i8] c"Sites positions must be between 0 and sequence_length\00"
@.str.55 = [56 x i8] c"Mutations must be provided in non-decreasing site order\00"
@.str.56 = [47 x i8] c"All edges for a given parent must be adjacent.\00"
@.str.57 = [71 x i8] c"Bad edges: contradictory children for a given parent over an interval.\00"
@.str.58 = [67 x i8] c"Bad edges: multiple definitions of a given parent over an interval\00"
@.str.59 = [29 x i8] c"Sequence length must be > 0.\00"
@.str.60 = [29 x i8] c"Left coordinate must be >= 0\00"
@.str.61 = [36 x i8] c"Right coordinate > sequence length.\00"
@.str.62 = [26 x i8] c"mutation ID out of bounds\00"
@.str.63 = [50 x i8] c"Specified parent mutation is at a different site.\00"
@.str.64 = [34 x i8] c"Parent mutation refers to itself.\00"
@.str.65 = [41 x i8] c"Parent mutation ID must be < current ID.\00"
@.str.66 = [36 x i8] c"Bad offset provided in input array.\00"
@.str.67 = [35 x i8] c"Cannot have more than 255 alleles.\00"
@.str.68 = [28 x i8] c"Individual ID out of bounds\00"
@.str.69 = [22 x i8] c"Error generating UUID\00"
@.str.70 = [26 x i8] c"Duplicate site positions.\00"
@.str.71 = [47 x i8] c"Bad table position provided to truncate/reset.\00"
@.str.72 = [26 x i8] c"Invalid edge index value.\00"
@.str.73 = [34 x i8] c"Table collection must be indexed.\00"
@.str.74 = [118 x i8] c"Migrations currently not supported in simplify. Please open an issue on GitHub if this operation is important to you.\00"
@.str.75 = [90 x i8] c"The specified tree sequence is not a compatible starting point for the current simulation\00"
@.str.76 = [116 x i8] c"The specified start_time and from_ts are not compatible. All node times in the tree sequence must be <= start_time.\00"
@.str.77 = [25 x i8] c"start_time must be >= 0.\00"
@.str.78 = [46 x i8] c"demographic event time must be >= start_time.\00"
@.str.79 = [250 x i8] c"The specified recombination map is cannot translate the coordinatesfor the specified tree sequence. It is either too coarse (num_loci is too small) or contains zero recombination rates. Please either increase the number of loci or recombination rate\00"
@.str.80 = [248 x i8] c"The simulation model supplied resulted in a parent node having a time value <= to its child. This can occur either as a result of multiple bottlenecks happening at the same time or because of numerical imprecision with very small population sizes.\00"
@.str.81 = [64 x i8] c"Only infinite sites mutations are supported for this operation.\00"
@.str.82 = [71 x i8] c"GSL numerical integration failed. Please check the stderr for details.\00"
@.str.83 = [44 x i8] c"Sweep locus must be between 0 and num_loci.\00"
@.str.84 = [49 x i8] c"Time values must be > 0 and in increasing order.\00"
@.str.85 = [49 x i8] c"Allele frequency values must be between 0 and 1.\00"
@.str.86 = [49 x i8] c"Trajectory must contain at least one time point.\00"
@errno = global i32 0
@.str.87 = [21 x i8] c"Unspecified IO error\00"
@.str.88 = [66 x i8] c"Error occurred generating error string. Please file a bug report!\00"
define i8* @msp_strerror_internal(i32 %0) {
%2 = alloca i32
%3 = alloca i8*
store i32 %0, i32* %2
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str, i64 0, i64 0), i8** %3
%4 = load i32, i32* %2
switch i32 %4, label %100 [
i32 0, label %5
i32 -2, label %6
i32 -1, label %7
i32 -4, label %8
i32 -6, label %9
i32 -9, label %10
i32 -10, label %11
i32 -11, label %12
i32 -12, label %13
i32 -8, label %14
i32 -16, label %15
i32 -17, label %16
i32 -7, label %17
i32 -18, label %18
i32 -19, label %19
i32 -27, label %20
i32 -14, label %21
i32 -20, label %22
i32 -21, label %23
i32 -22, label %24
i32 -23, label %25
i32 -24, label %26
i32 -25, label %27
i32 -26, label %28
i32 -49, label %29
i32 -50, label %30
i32 -36, label %31
i32 -37, label %32
i32 -38, label %33
i32 -39, label %34
i32 -34, label %35
i32 -35, label %36
i32 -40, label %37
i32 -41, label %38
i32 -42, label %39
i32 -32, label %40
i32 -28, label %41
i32 -30, label %42
i32 -31, label %43
i32 -15, label %44
i32 -5, label %45
i32 -33, label %46
i32 -43, label %47
i32 -46, label %48
i32 -47, label %49
i32 -48, label %50
i32 -51, label %51
i32 -52, label %52
i32 -53, label %53
i32 -54, label %54
i32 -55, label %55
i32 -56, label %56
i32 -58, label %57
i32 -59, label %58
i32 -60, label %59
i32 -61, label %60
i32 -63, label %61
i32 -64, label %62
i32 -65, label %63
i32 -66, label %64
i32 -75, label %65
i32 -67, label %66
i32 -68, label %67
i32 -69, label %68
i32 -70, label %69
i32 -71, label %70
i32 -44, label %71
i32 -45, label %72
i32 -72, label %73
i32 -73, label %74
i32 -57, label %75
i32 -29, label %76
i32 -74, label %77
i32 -76, label %78
i32 -77, label %79
i32 -78, label %80
i32 -79, label %81
i32 -80, label %82
i32 -81, label %83
i32 -82, label %84
i32 -83, label %85
i32 -84, label %86
i32 -85, label %87
i32 -86, label %88
i32 -87, label %89
i32 -88, label %90
i32 -89, label %91
i32 -3, label %92
]
5: ; preds = %1
store i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.1, i64 0, i64 0), i8** %3
br label %102
6: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0), i8** %3
br label %101
7: ; preds = %1
store i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.3, i64 0, i64 0), i8** %3
br label %101
8: ; preds = %1
store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.4, i64 0, i64 0), i8** %3
br label %101
9: ; preds = %1
store i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.5, i64 0, i64 0), i8** %3
br label %101
10: ; preds = %1
store i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.6, i64 0, i64 0), i8** %3
br label %101
11: ; preds = %1
store i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.7, i64 0, i64 0), i8** %3
br label %101
12: ; preds = %1
store i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.8, i64 0, i64 0), i8** %3
br label %101
13: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.9, i64 0, i64 0), i8** %3
br label %101
14: ; preds = %1
store i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.10, i64 0, i64 0), i8** %3
br label %101
15: ; preds = %1
store i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.11, i64 0, i64 0), i8** %3
br label %101
16: ; preds = %1
store i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.12, i64 0, i64 0), i8** %3
br label %101
17: ; preds = %1
store i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.13, i64 0, i64 0), i8** %3
br label %101
18: ; preds = %1
store i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.14, i64 0, i64 0), i8** %3
br label %101
19: ; preds = %1
store i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.15, i64 0, i64 0), i8** %3
br label %101
20: ; preds = %1
store i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.16, i64 0, i64 0), i8** %3
br label %101
21: ; preds = %1
store i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.17, i64 0, i64 0), i8** %3
br label %101
22: ; preds = %1
store i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.18, i64 0, i64 0), i8** %3
br label %101
23: ; preds = %1
store i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.19, i64 0, i64 0), i8** %3
br label %101
24: ; preds = %1
store i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.20, i64 0, i64 0), i8** %3
br label %101
25: ; preds = %1
store i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.21, i64 0, i64 0), i8** %3
br label %101
26: ; preds = %1
store i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.22, i64 0, i64 0), i8** %3
br label %101
27: ; preds = %1
store i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.23, i64 0, i64 0), i8** %3
br label %101
28: ; preds = %1
store i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.24, i64 0, i64 0), i8** %3
br label %101
29: ; preds = %1
store i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.25, i64 0, i64 0), i8** %3
br label %101
30: ; preds = %1
store i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.26, i64 0, i64 0), i8** %3
br label %101
31: ; preds = %1
store i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str.27, i64 0, i64 0), i8** %3
br label %101
32: ; preds = %1
store i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.28, i64 0, i64 0), i8** %3
br label %101
33: ; preds = %1
store i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.29, i64 0, i64 0), i8** %3
br label %101
34: ; preds = %1
store i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.30, i64 0, i64 0), i8** %3
br label %101
35: ; preds = %1
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.31, i64 0, i64 0), i8** %3
br label %101
36: ; preds = %1
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.31, i64 0, i64 0), i8** %3
br label %101
37: ; preds = %1
store i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.32, i64 0, i64 0), i8** %3
br label %101
38: ; preds = %1
store i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.33, i64 0, i64 0), i8** %3
br label %101
39: ; preds = %1
store i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.34, i64 0, i64 0), i8** %3
br label %101
40: ; preds = %1
store i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.35, i64 0, i64 0), i8** %3
br label %101
41: ; preds = %1
store i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.36, i64 0, i64 0), i8** %3
br label %101
42: ; preds = %1
store i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.37, i64 0, i64 0), i8** %3
br label %101
43: ; preds = %1
store i8* getelementptr inbounds ([95 x i8], [95 x i8]* @.str.38, i64 0, i64 0), i8** %3
br label %101
44: ; preds = %1
store i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.39, i64 0, i64 0), i8** %3
br label %101
45: ; preds = %1
store i8* getelementptr inbounds ([115 x i8], [115 x i8]* @.str.40, i64 0, i64 0), i8** %3
br label %101
46: ; preds = %1
store i8* getelementptr inbounds ([99 x i8], [99 x i8]* @.str.41, i64 0, i64 0), i8** %3
br label %101
47: ; preds = %1
store i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.42, i64 0, i64 0), i8** %3
br label %101
48: ; preds = %1
store i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.43, i64 0, i64 0), i8** %3
br label %101
49: ; preds = %1
store i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.44, i64 0, i64 0), i8** %3
br label %101
50: ; preds = %1
store i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.45, i64 0, i64 0), i8** %3
br label %101
51: ; preds = %1
store i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.46, i64 0, i64 0), i8** %3
br label %101
52: ; preds = %1
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.47, i64 0, i64 0), i8** %3
br label %101
53: ; preds = %1
store i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.48, i64 0, i64 0), i8** %3
br label %101
54: ; preds = %1
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.49, i64 0, i64 0), i8** %3
br label %101
55: ; preds = %1
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.50, i64 0, i64 0), i8** %3
br label %101
56: ; preds = %1
store i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.51, i64 0, i64 0), i8** %3
br label %101
57: ; preds = %1
store i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.52, i64 0, i64 0), i8** %3
br label %101
58: ; preds = %1
store i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.53, i64 0, i64 0), i8** %3
br label %101
59: ; preds = %1
store i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.54, i64 0, i64 0), i8** %3
br label %101
60: ; preds = %1
store i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.55, i64 0, i64 0), i8** %3
br label %101
61: ; preds = %1
store i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.56, i64 0, i64 0), i8** %3
br label %101
62: ; preds = %1
store i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.57, i64 0, i64 0), i8** %3
br label %101
63: ; preds = %1
store i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.58, i64 0, i64 0), i8** %3
br label %101
64: ; preds = %1
store i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.59, i64 0, i64 0), i8** %3
br label %101
65: ; preds = %1
store i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.60, i64 0, i64 0), i8** %3
br label %101
66: ; preds = %1
store i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.61, i64 0, i64 0), i8** %3
br label %101
67: ; preds = %1
store i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.62, i64 0, i64 0), i8** %3
br label %101
68: ; preds = %1
store i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.63, i64 0, i64 0), i8** %3
br label %101
69: ; preds = %1
store i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.64, i64 0, i64 0), i8** %3
br label %101
70: ; preds = %1
store i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.65, i64 0, i64 0), i8** %3
br label %101
71: ; preds = %1
store i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.66, i64 0, i64 0), i8** %3
br label %101
72: ; preds = %1
store i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.67, i64 0, i64 0), i8** %3
br label %101
73: ; preds = %1
store i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.68, i64 0, i64 0), i8** %3
br label %101
74: ; preds = %1
store i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.69, i64 0, i64 0), i8** %3
br label %101
75: ; preds = %1
store i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.70, i64 0, i64 0), i8** %3
br label %101
76: ; preds = %1
store i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.71, i64 0, i64 0), i8** %3
br label %101
77: ; preds = %1
store i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.72, i64 0, i64 0), i8** %3
br label %101
78: ; preds = %1
store i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.73, i64 0, i64 0), i8** %3
br label %101
79: ; preds = %1
store i8* getelementptr inbounds ([118 x i8], [118 x i8]* @.str.74, i64 0, i64 0), i8** %3
br label %101
80: ; preds = %1
store i8* getelementptr inbounds ([90 x i8], [90 x i8]* @.str.75, i64 0, i64 0), i8** %3
br label %101
81: ; preds = %1
store i8* getelementptr inbounds ([116 x i8], [116 x i8]* @.str.76, i64 0, i64 0), i8** %3
br label %101
82: ; preds = %1
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.77, i64 0, i64 0), i8** %3
br label %101
83: ; preds = %1
store i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.78, i64 0, i64 0), i8** %3
br label %101
84: ; preds = %1
store i8* getelementptr inbounds ([250 x i8], [250 x i8]* @.str.79, i64 0, i64 0), i8** %3
br label %101
85: ; preds = %1
store i8* getelementptr inbounds ([248 x i8], [248 x i8]* @.str.80, i64 0, i64 0), i8** %3
br label %101
86: ; preds = %1
store i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.81, i64 0, i64 0), i8** %3
br label %101
87: ; preds = %1
store i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.82, i64 0, i64 0), i8** %3
br label %101
88: ; preds = %1
store i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.83, i64 0, i64 0), i8** %3
br label %101
89: ; preds = %1
store i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.84, i64 0, i64 0), i8** %3
br label %101
90: ; preds = %1
store i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.85, i64 0, i64 0), i8** %3
br label %101
91: ; preds = %1
store i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.86, i64 0, i64 0), i8** %3
br label %101
92: ; preds = %1
%93 = load i32, i32* @errno
%94 = icmp ne i32 %93, 0
br i1 %94, label %95, label %98
95: ; preds = %92
%96 = load i32, i32* @errno
%97 = call i8* @strerror(i32 %96)
store i8* %97, i8** %3
br label %99
98: ; preds = %92
store i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.87, i64 0, i64 0), i8** %3
br label %99
99: ; preds = %98, %95
br label %101
100: ; preds = %1
store i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.88, i64 0, i64 0), i8** %3
br label %101
101: ; preds = %100, %99, %91, %90, %89, %88, %87, %86, %85, %84, %83, %82, %81, %80, %79, %78, %77, %76, %75, %74, %73, %72, %71, %70, %69, %68, %67, %66, %65, %64, %63, %62, %61, %60, %59, %58, %57, %56, %55, %54, %53, %52, %51, %50, %49, %48, %47, %46, %45, %44, %43, %42, %41, %40, %39, %38, %37, %36, %35, %34, %33, %32, %31, %30, %29, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6
br label %102
102: ; preds = %101, %5
%103 = load i8*, i8** %3
ret i8* %103
}

LLVM IR (-O2):
@.str.1 = [45 x i8] c"Normal exit condition. This is not an error!\00"
@.str.2 = [15 x i8] c"Out of memory.\00"
@.str.3 = [40 x i8] c"Generic error; please file a bug report\00"
@.str.4 = [18 x i8] c"File format error\00"
@.str.5 = [57 x i8] c"Bad simulator state. Initialise or reset must be called.\00"
@.str.6 = [29 x i8] c"Supplied buffer if too small\00"
@.str.7 = [40 x i8] c"Demographic events must be time sorted.\00"
@.str.8 = [30 x i8] c"Population Overflow occurred.\00"
@.str.9 = [25 x i8] c"Links Overflow occurred.\00"
@.str.10 = [31 x i8] c"Object reference out of bounds\00"
@.str.11 = [30 x i8] c"Bad record ordering requested\00"
@.str.12 = [22 x i8] c"Bad mutation provided\00"
@.str.13 = [29 x i8] c"Bad parameter value provided\00"
@.str.14 = [55 x i8] c"Operation cannot be performed in current configuration\00"
@.str.15 = [39 x i8] c"Bad population configuration provided.\00"
@.str.16 = [43 x i8] c"Bad population size provided. Must be > 0.\00"
@.str.17 = [29 x i8] c"Population ID out of bounds.\00"
@.str.18 = [31 x i8] c"Bad migration matrix provided.\00"
@.str.19 = [37 x i8] c"Bad migration matrix index provided.\00"
@.str.20 = [47 x i8] c"Cannot set diagonal migration matrix elements.\00"
@.str.21 = [51 x i8] c"Infinite waiting time until next simulation event.\00"
@.str.22 = [42 x i8] c"Internal error; please file a bug report.\00"
@.str.23 = [42 x i8] c"Source and destination populations equal.\00"
@.str.24 = [32 x i8] c"Bad recombination map provided.\00"
@.str.25 = [29 x i8] c"At least two samples needed.\00"
@.str.26 = [37 x i8] c"At least one record must be supplied\00"
@.str.27 = [87 x i8] c"Edges must be listed in (time[parent], child, left) order; time[parent] order violated\00"
@.str.28 = [48 x i8] c"All edges for a given parent must be contiguous\00"
@.str.29 = [80 x i8] c"Edges must be listed in (time[parent], child, left) order; child order violated\00"
@.str.30 = [79 x i8] c"Edges must be listed in (time[parent], child, left) order; left order violated\00"
@.str.31 = [24 x i8] c"Edge in parent is null.\00"
@.str.32 = [46 x i8] c"time[parent] must be greater than time[child]\00"
@.str.33 = [38 x i8] c"Bad edge interval where right <= left\00"
@.str.34 = [26 x i8] c"Duplicate edges provided.\00"
@.str.35 = [54 x i8] c"Cannot simplify the tree sequence; no output records.\00"
@.str.36 = [35 x i8] c"Bad sample configuration provided.\00"
@.str.37 = [75 x i8] c"tskit file version too old. Please upgrade using the 'msp upgrade' command\00"
@.str.38 = [95 x i8] c"tskit file version is too new for this instance. Please upgrade msprime to the latest version.\00"
@.str.39 = [47 x i8] c"Duplicate value provided in tracked leaf list.\00"
@.str.40 = [115 x i8] c"Cannot change the state of the tree sequence when other objects reference it. Make sure all trees are freed first.\00"
@.str.41 = [99 x i8] c"Model error. Either a bad model, or the requested operation is not supported for the current model\00"
@.str.42 = [50 x i8] c"object not initialised. Please file a bug report.\00"
@.str.43 = [63 x i8] c"Cannot have more than one mutation at a node for a given site.\00"
@.str.44 = [56 x i8] c"Only binary mutations are supported for this operation.\00"
@.str.45 = [62 x i8] c"Inconsistent mutations: state already equal to derived state.\00"
@.str.46 = [22 x i8] c"Coordinate not found.\00"
@.str.47 = [23 x i8] c"Malformed nodes array.\00"
@.str.48 = [29 x i8] c"Malformed array of children.\00"
@.str.49 = [19 x i8] c"Site out of bounds\00"
@.str.50 = [19 x i8] c"Node out of bounds\00"
@.str.51 = [62 x i8] c"Mismatch in stored total column length and sum of row lengths\00"
@.str.52 = [38 x i8] c"Only single char mutations supported.\00"
@.str.53 = [62 x i8] c"Sites must be provided in strictly increasing position order.\00"
@.str.54 = [54 x i8] c"Sites positions must be between 0 and sequence_length\00"
@.str.55 = [56 x i8] c"Mutations must be provided in non-decreasing site order\00"
@.str.56 = [47 x i8] c"All edges for a given parent must be adjacent.\00"
@.str.57 = [71 x i8] c"Bad edges: contradictory children for a given parent over an interval.\00"
@.str.58 = [67 x i8] c"Bad edges: multiple definitions of a given parent over an interval\00"
@.str.59 = [29 x i8] c"Sequence length must be > 0.\00"
@.str.60 = [29 x i8] c"Left coordinate must be >= 0\00"
@.str.61 = [36 x i8] c"Right coordinate > sequence length.\00"
@.str.62 = [26 x i8] c"mutation ID out of bounds\00"
@.str.63 = [50 x i8] c"Specified parent mutation is at a different site.\00"
@.str.64 = [34 x i8] c"Parent mutation refers to itself.\00"
@.str.65 = [41 x i8] c"Parent mutation ID must be < current ID.\00"
@.str.66 = [36 x i8] c"Bad offset provided in input array.\00"
@.str.67 = [35 x i8] c"Cannot have more than 255 alleles.\00"
@.str.68 = [28 x i8] c"Individual ID out of bounds\00"
@.str.69 = [22 x i8] c"Error generating UUID\00"
@.str.70 = [26 x i8] c"Duplicate site positions.\00"
@.str.71 = [47 x i8] c"Bad table position provided to truncate/reset.\00"
@.str.72 = [26 x i8] c"Invalid edge index value.\00"
@.str.73 = [34 x i8] c"Table collection must be indexed.\00"
@.str.74 = [118 x i8] c"Migrations currently not supported in simplify. Please open an issue on GitHub if this operation is important to you.\00"
@.str.75 = [90 x i8] c"The specified tree sequence is not a compatible starting point for the current simulation\00"
@.str.76 = [116 x i8] c"The specified start_time and from_ts are not compatible. All node times in the tree sequence must be <= start_time.\00"
@.str.77 = [25 x i8] c"start_time must be >= 0.\00"
@.str.78 = [46 x i8] c"demographic event time must be >= start_time.\00"
@.str.79 = [250 x i8] c"The specified recombination map is cannot translate the coordinatesfor the specified tree sequence. It is either too coarse (num_loci is too small) or contains zero recombination rates. Please either increase the number of loci or recombination rate\00"
@.str.80 = [248 x i8] c"The simulation model supplied resulted in a parent node having a time value <= to its child. This can occur either as a result of multiple bottlenecks happening at the same time or because of numerical imprecision with very small population sizes.\00"
@.str.81 = [64 x i8] c"Only infinite sites mutations are supported for this operation.\00"
@.str.82 = [71 x i8] c"GSL numerical integration failed. Please check the stderr for details.\00"
@.str.83 = [44 x i8] c"Sweep locus must be between 0 and num_loci.\00"
@.str.84 = [49 x i8] c"Time values must be > 0 and in increasing order.\00"
@.str.85 = [49 x i8] c"Allele frequency values must be between 0 and 1.\00"
@.str.86 = [49 x i8] c"Trajectory must contain at least one time point.\00"
@errno = global i32 0
@.str.87 = [21 x i8] c"Unspecified IO error\00"
@.str.88 = [66 x i8] c"Error occurred generating error string. Please file a bug report!\00"
define i8* @msp_strerror_internal(i32 %0) {
switch i32 %0, label %93 [
i32 0, label %94
i32 -2, label %2
i32 -1, label %3
i32 -4, label %4
i32 -6, label %5
i32 -9, label %6
i32 -10, label %7
i32 -11, label %8
i32 -12, label %9
i32 -8, label %10
i32 -16, label %11
i32 -17, label %12
i32 -7, label %13
i32 -18, label %14
i32 -19, label %15
i32 -27, label %16
i32 -14, label %17
i32 -20, label %18
i32 -21, label %19
i32 -22, label %20
i32 -23, label %21
i32 -24, label %22
i32 -25, label %23
i32 -26, label %24
i32 -49, label %25
i32 -50, label %26
i32 -36, label %27
i32 -37, label %28
i32 -38, label %29
i32 -39, label %30
i32 -34, label %31
i32 -35, label %32
i32 -40, label %33
i32 -41, label %34
i32 -42, label %35
i32 -32, label %36
i32 -28, label %37
i32 -30, label %38
i32 -31, label %39
i32 -15, label %40
i32 -5, label %41
i32 -33, label %42
i32 -43, label %43
i32 -46, label %44
i32 -47, label %45
i32 -48, label %46
i32 -51, label %47
i32 -52, label %48
i32 -53, label %49
i32 -54, label %50
i32 -55, label %51
i32 -56, label %52
i32 -58, label %53
i32 -59, label %54
i32 -60, label %55
i32 -61, label %56
i32 -63, label %57
i32 -64, label %58
i32 -65, label %59
i32 -66, label %60
i32 -75, label %61
i32 -67, label %62
i32 -68, label %63
i32 -69, label %64
i32 -70, label %65
i32 -71, label %66
i32 -44, label %67
i32 -45, label %68
i32 -72, label %69
i32 -73, label %70
i32 -57, label %71
i32 -29, label %72
i32 -74, label %73
i32 -76, label %74
i32 -77, label %75
i32 -78, label %76
i32 -79, label %77
i32 -80, label %78
i32 -81, label %79
i32 -82, label %80
i32 -83, label %81
i32 -84, label %82
i32 -85, label %83
i32 -86, label %84
i32 -87, label %85
i32 -88, label %86
i32 -89, label %87
i32 -3, label %88
]
2: ; preds = %1
br label %94
3: ; preds = %1
br label %94
4: ; preds = %1
br label %94
5: ; preds = %1
br label %94
6: ; preds = %1
br label %94
7: ; preds = %1
br label %94
8: ; preds = %1
br label %94
9: ; preds = %1
br label %94
10: ; preds = %1
br label %94
11: ; preds = %1
br label %94
12: ; preds = %1
br label %94
13: ; preds = %1
br label %94
14: ; preds = %1
br label %94
15: ; preds = %1
br label %94
16: ; preds = %1
br label %94
17: ; preds = %1
br label %94
18: ; preds = %1
br label %94
19: ; preds = %1
br label %94
20: ; preds = %1
br label %94
21: ; preds = %1
br label %94
22: ; preds = %1
br label %94
23: ; preds = %1
br label %94
24: ; preds = %1
br label %94
25: ; preds = %1
br label %94
26: ; preds = %1
br label %94
27: ; preds = %1
br label %94
28: ; preds = %1
br label %94
29: ; preds = %1
br label %94
30: ; preds = %1
br label %94
31: ; preds = %1
br label %94
32: ; preds = %1
br label %94
33: ; preds = %1
br label %94
34: ; preds = %1
br label %94
35: ; preds = %1
br label %94
36: ; preds = %1
br label %94
37: ; preds = %1
br label %94
38: ; preds = %1
br label %94
39: ; preds = %1
br label %94
40: ; preds = %1
br label %94
41: ; preds = %1
br label %94
42: ; preds = %1
br label %94
43: ; preds = %1
br label %94
44: ; preds = %1
br label %94
45: ; preds = %1
br label %94
46: ; preds = %1
br label %94
47: ; preds = %1
br label %94
48: ; preds = %1
br label %94
49: ; preds = %1
br label %94
50: ; preds = %1
br label %94
51: ; preds = %1
br label %94
52: ; preds = %1
br label %94
53: ; preds = %1
br label %94
54: ; preds = %1
br label %94
55: ; preds = %1
br label %94
56: ; preds = %1
br label %94
57: ; preds = %1
br label %94
58: ; preds = %1
br label %94
59: ; preds = %1
br label %94
60: ; preds = %1
br label %94
61: ; preds = %1
br label %94
62: ; preds = %1
br label %94
63: ; preds = %1
br label %94
64: ; preds = %1
br label %94
65: ; preds = %1
br label %94
66: ; preds = %1
br label %94
67: ; preds = %1
br label %94
68: ; preds = %1
br label %94
69: ; preds = %1
br label %94
70: ; preds = %1
br label %94
71: ; preds = %1
br label %94
72: ; preds = %1
br label %94
73: ; preds = %1
br label %94
74: ; preds = %1
br label %94
75: ; preds = %1
br label %94
76: ; preds = %1
br label %94
77: ; preds = %1
br label %94
78: ; preds = %1
br label %94
79: ; preds = %1
br label %94
80: ; preds = %1
br label %94
81: ; preds = %1
br label %94
82: ; preds = %1
br label %94
83: ; preds = %1
br label %94
84: ; preds = %1
br label %94
85: ; preds = %1
br label %94
86: ; preds = %1
br label %94
87: ; preds = %1
br label %94
88: ; preds = %1
%89 = load i32, i32* @errno
%90 = icmp eq i32 %89, 0
br i1 %90, label %94, label %91
91: ; preds = %88
%92 = tail call i8* @strerror(i32 %89)
br label %94
93: ; preds = %1
br label %94
94: ; preds = %88, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19, %20, %21, %22, %23, %24, %25, %26, %27, %28, %29, %30, %31, %32, %33, %34, %35, %36, %37, %38, %39, %40, %41, %42, %43, %44, %45, %46, %47, %48, %49, %50, %51, %52, %53, %54, %55, %56, %57, %58, %59, %60, %61, %62, %63, %64, %65, %66, %67, %68, %69, %70, %71, %72, %73, %74, %75, %76, %77, %78, %79, %80, %81, %82, %83, %84, %85, %86, %87, %93, %91
%95 = phi i8* [ getelementptr inbounds ([66 x i8], [66 x i8]* @.str.88, i64 0, i64 0), %93 ], [ %92, %91 ], [ getelementptr inbounds ([49 x i8], [49 x i8]* @.str.86, i64 0, i64 0), %87 ], [ getelementptr inbounds ([49 x i8], [49 x i8]* @.str.85, i64 0, i64 0), %86 ], [ getelementptr inbounds ([49 x i8], [49 x i8]* @.str.84, i64 0, i64 0), %85 ], [ getelementptr inbounds ([44 x i8], [44 x i8]* @.str.83, i64 0, i64 0), %84 ], [ getelementptr inbounds ([71 x i8], [71 x i8]* @.str.82, i64 0, i64 0), %83 ], [ getelementptr inbounds ([64 x i8], [64 x i8]* @.str.81, i64 0, i64 0), %82 ], [ getelementptr inbounds ([248 x i8], [248 x i8]* @.str.80, i64 0, i64 0), %81 ], [ getelementptr inbounds ([250 x i8], [250 x i8]* @.str.79, i64 0, i64 0), %80 ], [ getelementptr inbounds ([46 x i8], [46 x i8]* @.str.78, i64 0, i64 0), %79 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.77, i64 0, i64 0), %78 ], [ getelementptr inbounds ([116 x i8], [116 x i8]* @.str.76, i64 0, i64 0), %77 ], [ getelementptr inbounds ([90 x i8], [90 x i8]* @.str.75, i64 0, i64 0), %76 ], [ getelementptr inbounds ([118 x i8], [118 x i8]* @.str.74, i64 0, i64 0), %75 ], [ getelementptr inbounds ([34 x i8], [34 x i8]* @.str.73, i64 0, i64 0), %74 ], [ getelementptr inbounds ([26 x i8], [26 x i8]* @.str.72, i64 0, i64 0), %73 ], [ getelementptr inbounds ([47 x i8], [47 x i8]* @.str.71, i64 0, i64 0), %72 ], [ getelementptr inbounds ([26 x i8], [26 x i8]* @.str.70, i64 0, i64 0), %71 ], [ getelementptr inbounds ([22 x i8], [22 x i8]* @.str.69, i64 0, i64 0), %70 ], [ getelementptr inbounds ([28 x i8], [28 x i8]* @.str.68, i64 0, i64 0), %69 ], [ getelementptr inbounds ([35 x i8], [35 x i8]* @.str.67, i64 0, i64 0), %68 ], [ getelementptr inbounds ([36 x i8], [36 x i8]* @.str.66, i64 0, i64 0), %67 ], [ getelementptr inbounds ([41 x i8], [41 x i8]* @.str.65, i64 0, i64 0), %66 ], [ getelementptr inbounds ([34 x i8], [34 x i8]* @.str.64, i64 0, i64 0), %65 ], [ getelementptr inbounds ([50 x i8], [50 x i8]* @.str.63, i64 0, i64 0), %64 ], [ getelementptr inbounds ([26 x i8], [26 x i8]* @.str.62, i64 0, i64 0), %63 ], [ getelementptr inbounds ([36 x i8], [36 x i8]* @.str.61, i64 0, i64 0), %62 ], [ getelementptr inbounds ([29 x i8], [29 x i8]* @.str.60, i64 0, i64 0), %61 ], [ getelementptr inbounds ([29 x i8], [29 x i8]* @.str.59, i64 0, i64 0), %60 ], [ getelementptr inbounds ([67 x i8], [67 x i8]* @.str.58, i64 0, i64 0), %59 ], [ getelementptr inbounds ([71 x i8], [71 x i8]* @.str.57, i64 0, i64 0), %58 ], [ getelementptr inbounds ([47 x i8], [47 x i8]* @.str.56, i64 0, i64 0), %57 ], [ getelementptr inbounds ([56 x i8], [56 x i8]* @.str.55, i64 0, i64 0), %56 ], [ getelementptr inbounds ([54 x i8], [54 x i8]* @.str.54, i64 0, i64 0), %55 ], [ getelementptr inbounds ([62 x i8], [62 x i8]* @.str.53, i64 0, i64 0), %54 ], [ getelementptr inbounds ([38 x i8], [38 x i8]* @.str.52, i64 0, i64 0), %53 ], [ getelementptr inbounds ([62 x i8], [62 x i8]* @.str.51, i64 0, i64 0), %52 ], [ getelementptr inbounds ([19 x i8], [19 x i8]* @.str.50, i64 0, i64 0), %51 ], [ getelementptr inbounds ([19 x i8], [19 x i8]* @.str.49, i64 0, i64 0), %50 ], [ getelementptr inbounds ([29 x i8], [29 x i8]* @.str.48, i64 0, i64 0), %49 ], [ getelementptr inbounds ([23 x i8], [23 x i8]* @.str.47, i64 0, i64 0), %48 ], [ getelementptr inbounds ([22 x i8], [22 x i8]* @.str.46, i64 0, i64 0), %47 ], [ getelementptr inbounds ([62 x i8], [62 x i8]* @.str.45, i64 0, i64 0), %46 ], [ getelementptr inbounds ([56 x i8], [56 x i8]* @.str.44, i64 0, i64 0), %45 ], [ getelementptr inbounds ([63 x i8], [63 x i8]* @.str.43, i64 0, i64 0), %44 ], [ getelementptr inbounds ([50 x i8], [50 x i8]* @.str.42, i64 0, i64 0), %43 ], [ getelementptr inbounds ([99 x i8], [99 x i8]* @.str.41, i64 0, i64 0), %42 ], [ getelementptr inbounds ([115 x i8], [115 x i8]* @.str.40, i64 0, i64 0), %41 ], [ getelementptr inbounds ([47 x i8], [47 x i8]* @.str.39, i64 0, i64 0), %40 ], [ getelementptr inbounds ([95 x i8], [95 x i8]* @.str.38, i64 0, i64 0), %39 ], [ getelementptr inbounds ([75 x i8], [75 x i8]* @.str.37, i64 0, i64 0), %38 ], [ getelementptr inbounds ([35 x i8], [35 x i8]* @.str.36, i64 0, i64 0), %37 ], [ getelementptr inbounds ([54 x i8], [54 x i8]* @.str.35, i64 0, i64 0), %36 ], [ getelementptr inbounds ([26 x i8], [26 x i8]* @.str.34, i64 0, i64 0), %35 ], [ getelementptr inbounds ([38 x i8], [38 x i8]* @.str.33, i64 0, i64 0), %34 ], [ getelementptr inbounds ([46 x i8], [46 x i8]* @.str.32, i64 0, i64 0), %33 ], [ getelementptr inbounds ([24 x i8], [24 x i8]* @.str.31, i64 0, i64 0), %32 ], [ getelementptr inbounds ([24 x i8], [24 x i8]* @.str.31, i64 0, i64 0), %31 ], [ getelementptr inbounds ([79 x i8], [79 x i8]* @.str.30, i64 0, i64 0), %30 ], [ getelementptr inbounds ([80 x i8], [80 x i8]* @.str.29, i64 0, i64 0), %29 ], [ getelementptr inbounds ([48 x i8], [48 x i8]* @.str.28, i64 0, i64 0), %28 ], [ getelementptr inbounds ([87 x i8], [87 x i8]* @.str.27, i64 0, i64 0), %27 ], [ getelementptr inbounds ([37 x i8], [37 x i8]* @.str.26, i64 0, i64 0), %26 ], [ getelementptr inbounds ([29 x i8], [29 x i8]* @.str.25, i64 0, i64 0), %25 ], [ getelementptr inbounds ([32 x i8], [32 x i8]* @.str.24, i64 0, i64 0), %24 ], [ getelementptr inbounds ([42 x i8], [42 x i8]* @.str.23, i64 0, i64 0), %23 ], [ getelementptr inbounds ([42 x i8], [42 x i8]* @.str.22, i64 0, i64 0), %22 ], [ getelementptr inbounds ([51 x i8], [51 x i8]* @.str.21, i64 0, i64 0), %21 ], [ getelementptr inbounds ([47 x i8], [47 x i8]* @.str.20, i64 0, i64 0), %20 ], [ getelementptr inbounds ([37 x i8], [37 x i8]* @.str.19, i64 0, i64 0), %19 ], [ getelementptr inbounds ([31 x i8], [31 x i8]* @.str.18, i64 0, i64 0), %18 ], [ getelementptr inbounds ([29 x i8], [29 x i8]* @.str.17, i64 0, i64 0), %17 ], [ getelementptr inbounds ([43 x i8], [43 x i8]* @.str.16, i64 0, i64 0), %16 ], [ getelementptr inbounds ([39 x i8], [39 x i8]* @.str.15, i64 0, i64 0), %15 ], [ getelementptr inbounds ([55 x i8], [55 x i8]* @.str.14, i64 0, i64 0), %14 ], [ getelementptr inbounds ([29 x i8], [29 x i8]* @.str.13, i64 0, i64 0), %13 ], [ getelementptr inbounds ([22 x i8], [22 x i8]* @.str.12, i64 0, i64 0), %12 ], [ getelementptr inbounds ([30 x i8], [30 x i8]* @.str.11, i64 0, i64 0), %11 ], [ getelementptr inbounds ([31 x i8], [31 x i8]* @.str.10, i64 0, i64 0), %10 ], [ getelementptr inbounds ([25 x i8], [25 x i8]* @.str.9, i64 0, i64 0), %9 ], [ getelementptr inbounds ([30 x i8], [30 x i8]* @.str.8, i64 0, i64 0), %8 ], [ getelementptr inbounds ([40 x i8], [40 x i8]* @.str.7, i64 0, i64 0), %7 ], [ getelementptr inbounds ([29 x i8], [29 x i8]* @.str.6, i64 0, i64 0), %6 ], [ getelementptr inbounds ([57 x i8], [57 x i8]* @.str.5, i64 0, i64 0), %5 ], [ getelementptr inbounds ([18 x i8], [18 x i8]* @.str.4, i64 0, i64 0), %4 ], [ getelementptr inbounds ([40 x i8], [40 x i8]* @.str.3, i64 0, i64 0), %3 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0), %2 ], [ getelementptr inbounds ([45 x i8], [45 x i8]* @.str.1, i64 0, i64 0), %1 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.87, i64 0, i64 0), %88 ]
ret i8* %95
}