int main(void) {
  int k, test1, test2;
  int *state1, *state2;
  float sbase;
  float xs[204], ys[204], xsn[96];
  double base;
  double xd[99], yd[99], xdn[48];
  sbase = (float)(ldexp(1.0, 24));
  base = ldexp(1.0, 48);
  state1 = malloc(rlxs_size() * sizeof(int));
  state2 = malloc(rlxd_size() * sizeof(int));
  rlxs_init(0, 32767);
  rlxd_init(1, 32767);
  for (k = 0; k < 20; k++) {
    ranlxs(xs, 204);
    ranlxd(xd, 99);
  }
  xsn[0] = 13257445.0f;
  xsn[1] = 15738482.0f;
  xsn[2] = 5448599.0f;
  xsn[3] = 9610459.0f;
  xsn[4] = 1046025.0f;
  xsn[5] = 2811360.0f;
  xsn[6] = 14923726.0f;
  xsn[7] = 2287739.0f;
  xsn[8] = 16133204.0f;
  xsn[9] = 16328320.0f;
  xsn[10] = 12980218.0f;
  xsn[11] = 9256959.0f;
  xsn[12] = 5633754.0f;
  xsn[13] = 7422961.0f;
  xsn[14] = 6032411.0f;
  xsn[15] = 14970828.0f;
  xsn[16] = 10717272.0f;
  xsn[17] = 2520878.0f;
  xsn[18] = 8906135.0f;
  xsn[19] = 8507426.0f;
  xsn[20] = 11925022.0f;
  xsn[21] = 12042827.0f;
  xsn[22] = 12263021.0f;
  xsn[23] = 4828801.0f;
  xsn[24] = 5300508.0f;
  xsn[25] = 13346776.0f;
  xsn[26] = 10869790.0f;
  xsn[27] = 8520207.0f;
  xsn[28] = 11213953.0f;
  xsn[29] = 14439320.0f;
  xsn[30] = 5716476.0f;
  xsn[31] = 13600448.0f;
  xsn[32] = 12545579.0f;
  xsn[33] = 3466523.0f;
  xsn[34] = 113906.0f;
  xsn[35] = 10407879.0f;
  xsn[36] = 12058596.0f;
  xsn[37] = 4390921.0f;
  xsn[38] = 1634350.0f;
  xsn[39] = 9823280.0f;
  xsn[40] = 12569690.0f;
  xsn[41] = 8267856.0f;
  xsn[42] = 5869501.0f;
  xsn[43] = 7210219.0f;
  xsn[44] = 1362361.0f;
  xsn[45] = 2956909.0f;
  xsn[46] = 504465.0f;
  xsn[47] = 6664636.0f;
  xsn[48] = 6048963.0f;
  xsn[49] = 1098525.0f;
  xsn[50] = 1261330.0f;
  xsn[51] = 2401071.0f;
  xsn[52] = 8087317.0f;
  xsn[53] = 1293933.0f;
  xsn[54] = 555494.0f;
  xsn[55] = 14872475.0f;
  xsn[56] = 11261534.0f;
  xsn[57] = 166813.0f;
  xsn[58] = 13424516.0f;
  xsn[59] = 15280818.0f;
  xsn[60] = 4644497.0f;
  xsn[61] = 6333595.0f;
  xsn[62] = 10012569.0f;
  xsn[63] = 6878028.0f;
  xsn[64] = 9176136.0f;
  xsn[65] = 8379433.0f;
  xsn[66] = 11073957.0f;
  xsn[67] = 2465529.0f;
  xsn[68] = 13633550.0f;
  xsn[69] = 12721649.0f;
  xsn[70] = 569725.0f;
  xsn[71] = 6375015.0f;
  xsn[72] = 2164250.0f;
  xsn[73] = 6725885.0f;
  xsn[74] = 7223108.0f;
  xsn[75] = 4890858.0f;
  xsn[76] = 11298261.0f;
  xsn[77] = 12086020.0f;
  xsn[78] = 4447706.0f;
  xsn[79] = 1164782.0f;
  xsn[80] = 1904399.0f;
  xsn[81] = 16669839.0f;
  xsn[82] = 2586766.0f;
  xsn[83] = 3605708.0f;
  xsn[84] = 15761082.0f;
  xsn[85] = 14937769.0f;
  xsn[86] = 13965017.0f;
  xsn[87] = 2175021.0f;
  xsn[88] = 16668997.0f;
  xsn[89] = 13996602.0f;
  xsn[90] = 6313099.0f;
  xsn[91] = 15646036.0f;
  xsn[92] = 9746447.0f;
  xsn[93] = 9596781.0f;
  xsn[94] = 9244169.0f;
  xsn[95] = 4731726.0f;
  xdn[0] = 135665102723086.0;
  xdn[1] = 259840970195871.0;
  xdn[2] = 110726726657103.0;
  xdn[3] = 53972500363809.0;
  xdn[4] = 199301297412157.0;
  xdn[5] = 63744794353870.0;
  xdn[6] = 178745978725904.0;
  xdn[7] = 243549380863176.0;
  xdn[8] = 244796821836177.0;
  xdn[9] = 223788809121855.0;
  xdn[10] = 113720856430443.0;
  xdn[11] = 124607822268499.0;
  xdn[12] = 25705458431399.0;
  xdn[13] = 155476863764950.0;
  xdn[14] = 195602097736933.0;
  xdn[15] = 183038707238950.0;
  xdn[16] = 62268883953527.0;
  xdn[17] = 157047615112119.0;
  xdn[18] = 58134973897037.0;
  xdn[19] = 26908869337679.0;
  xdn[20] = 259927185454290.0;
  xdn[21] = 130534606773507.0;
  xdn[22] = 205295065526788.0;
  xdn[23] = 40201323262686.0;
  xdn[24] = 193822255723177.0;
  xdn[25] = 239720285097881.0;
  xdn[26] = 54433631586673.0;
  xdn[27] = 31313178820772.0;
  xdn[28] = 152904879618865.0;
  xdn[29] = 256187025780734.0;
  xdn[30] = 110292144635528.0;
  xdn[31] = 26555117184469.0;
  xdn[32] = 228913371644996.0;
  xdn[33] = 126837665590799.0;
  xdn[34] = 141069100232139.0;
  xdn[35] = 96171028602910.0;
  xdn[36] = 259271018918511.0;
  xdn[37] = 65257892816619.0;
  xdn[38] = 14254344610711.0;
  xdn[39] = 137794868158301.0;
  xdn[40] = 269703238916504.0;
  xdn[41] = 35782602710520.0;
  xdn[42] = 51447305327263.0;
  xdn[43] = 247852246697199.0;
  xdn[44] = 65072958134912.0;
  xdn[45] = 273325640150591.0;
  xdn[46] = 2768714666444.0;
  xdn[47] = 173907458721736.0;
  test1 = 0;
  test2 = 0;
  for (k = 0; k < 96; k++) {
    if (xsn[k] != (xs[k + 60] * sbase))
      test1 = 1;
  }
  for (k = 0; k < 48; k++) {
    if (xdn[k] != (xd[k + 39] * base))
      test2 = 1;
  }
  if (test1 == 1) {
    printf("\n");
    printf("Test failed: ranlxs gives incorrect results\n");
    printf("=> do not use ranlxs on this machine\n");
    printf("\n");
  }
  if (test2 == 1) {
    printf("\n");
    printf("Test failed: ranlxd gives incorrect results\n");
    printf("=> do not use ranlxd on this machine\n");
    printf("\n");
  }
  rlxs_get(state1);
  rlxd_get(state2);
  for (k = 0; k < 10; k++) {
    ranlxs(xs, 204);
    ranlxd(xd, 99);
  }
  rlxs_reset(state1);
  rlxd_reset(state2);
  for (k = 0; k < 10; k++) {
    ranlxs(ys, 204);
    ranlxd(yd, 99);
  }
  for (k = 0; k < 204; k++) {
    if (xs[k] != ys[k])
      test1 = 2;
  }
  for (k = 0; k < 99; k++) {
    if (xd[k] != yd[k])
      test2 = 2;
  }
  if (test1 == 2) {
    printf("\n");
    printf("Test failed: I/O routines for ranlxs do not work properly\n");
    printf("=> do not use ranlxs on this machine\n");
    printf("\n");
  }
  if (test2 == 2) {
    printf("\n");
    printf("Test failed: I/O routines for ranlxd do not work properly\n");
    printf("=> do not use ranlxd on this machine\n");
    printf("\n");
  }
  if ((test1 == 0) && (test2 == 0)) {
    printf("\n");
    printf("All tests passed\n");
    printf("=> ranlxs and ranlxd work correctly on this machine\n");
    printf("\n");
  } else if (test1 == 0) {
    printf("\n");
    printf("All tests on ranlxs passed\n");
    printf("=> ranlxs works correctly on this machine\n");
    printf("\n");
  } else if (test2 == 0) {
    printf("\n");
    printf("All tests on ranlxd passed\n");
    printf("=> ranlxd works correctly on this machine\n");
    printf("\n");
  }
  exit(0);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0xfd0,%rsp
movl   $0x0,-0x4(%rbp)
movsd  0xe06(%rip),%xmm0
mov    $0x18,%edi
call   1040 <ldexp@plt>
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x24(%rbp)
movsd  0xdeb(%rip),%xmm0
mov    $0x30,%edi
call   1040 <ldexp@plt>
movsd  %xmm0,-0x818(%rbp)
ff
mov    $0x0,%al
call   1050 <rlxs_size@plt>
movslq %eax,%rdi
shl    $0x2,%rdi
call   10c0 <malloc@plt>
mov    %rax,-0x18(%rbp)
mov    $0x0,%al
call   10b0 <rlxd_size@plt>
movslq %eax,%rdi
shl    $0x2,%rdi
call   10c0 <malloc@plt>
mov    %rax,-0x20(%rbp)
xor    %edi,%edi
mov    $0x7fff,%esi
mov    $0x0,%al
call   1030 <rlxs_init@plt>
mov    $0x1,%edi
mov    $0x7fff,%esi
mov    $0x0,%al
call   1070 <rlxd_init@plt>
movl   $0x0,-0x8(%rbp)
cmpl   $0x14,-0x8(%rbp)
jge    12b9 <main+0xd9>
lea    -0x360(%rbp),%rdi
mov    $0xcc,%esi
mov    $0x0,%al
call   1100 <ranlxs@plt>
lea    -0xb30(%rbp),%rdi
mov    $0x63,%esi
mov    $0x0,%al
call   1090 <ranlxd@plt>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    127b <main+0x9b>
movss  0x1043(%rip),%xmm0
movss  %xmm0,-0x810(%rbp)
ff
movss  0x102f(%rip),%xmm0
movss  %xmm0,-0x80c(%rbp)
ff
movss  0x101b(%rip),%xmm0
movss  %xmm0,-0x808(%rbp)
ff
movss  0x1007(%rip),%xmm0
movss  %xmm0,-0x804(%rbp)
ff
movss  0xff3(%rip),%xmm0
movss  %xmm0,-0x800(%rbp)
ff
movss  0xfdf(%rip),%xmm0
movss  %xmm0,-0x7fc(%rbp)
ff
movss  0xfcb(%rip),%xmm0
movss  %xmm0,-0x7f8(%rbp)
ff
movss  0xfb7(%rip),%xmm0
movss  %xmm0,-0x7f4(%rbp)
ff
movss  0xfa3(%rip),%xmm0
movss  %xmm0,-0x7f0(%rbp)
ff
movss  0xf8f(%rip),%xmm0
movss  %xmm0,-0x7ec(%rbp)
ff
movss  0xf7b(%rip),%xmm0
movss  %xmm0,-0x7e8(%rbp)
ff
movss  0xf67(%rip),%xmm0
movss  %xmm0,-0x7e4(%rbp)
ff
movss  0xf53(%rip),%xmm0
movss  %xmm0,-0x7e0(%rbp)
ff
movss  0xf3f(%rip),%xmm0
movss  %xmm0,-0x7dc(%rbp)
ff
movss  0xf2b(%rip),%xmm0
movss  %xmm0,-0x7d8(%rbp)
ff
movss  0xf17(%rip),%xmm0
movss  %xmm0,-0x7d4(%rbp)
ff
movss  0xf03(%rip),%xmm0
movss  %xmm0,-0x7d0(%rbp)
ff
movss  0xeef(%rip),%xmm0
movss  %xmm0,-0x7cc(%rbp)
ff
movss  0xedb(%rip),%xmm0
movss  %xmm0,-0x7c8(%rbp)
ff
movss  0xec7(%rip),%xmm0
movss  %xmm0,-0x7c4(%rbp)
ff
movss  0xeb3(%rip),%xmm0
movss  %xmm0,-0x7c0(%rbp)
ff
movss  0xe9f(%rip),%xmm0
movss  %xmm0,-0x7bc(%rbp)
ff
movss  0xe8b(%rip),%xmm0
movss  %xmm0,-0x7b8(%rbp)
ff
movss  0xe77(%rip),%xmm0
movss  %xmm0,-0x7b4(%rbp)
ff
movss  0xe63(%rip),%xmm0
movss  %xmm0,-0x7b0(%rbp)
ff
movss  0xe4f(%rip),%xmm0
movss  %xmm0,-0x7ac(%rbp)
ff
movss  0xe3b(%rip),%xmm0
movss  %xmm0,-0x7a8(%rbp)
ff
movss  0xe27(%rip),%xmm0
movss  %xmm0,-0x7a4(%rbp)
ff
movss  0xe13(%rip),%xmm0
movss  %xmm0,-0x7a0(%rbp)
ff
movss  0xdff(%rip),%xmm0
movss  %xmm0,-0x79c(%rbp)
ff
movss  0xdeb(%rip),%xmm0
movss  %xmm0,-0x798(%rbp)
ff
movss  0xdd7(%rip),%xmm0
movss  %xmm0,-0x794(%rbp)
ff
movss  0xdc3(%rip),%xmm0
movss  %xmm0,-0x790(%rbp)
ff
movss  0xdaf(%rip),%xmm0
movss  %xmm0,-0x78c(%rbp)
ff
movss  0xd9b(%rip),%xmm0
movss  %xmm0,-0x788(%rbp)
ff
movss  0xd87(%rip),%xmm0
movss  %xmm0,-0x784(%rbp)
ff
movss  0xd73(%rip),%xmm0
movss  %xmm0,-0x780(%rbp)
ff
movss  0xd5f(%rip),%xmm0
movss  %xmm0,-0x77c(%rbp)
ff
movss  0xd4b(%rip),%xmm0
movss  %xmm0,-0x778(%rbp)
ff
movss  0xd37(%rip),%xmm0
movss  %xmm0,-0x774(%rbp)
ff
movss  0xd23(%rip),%xmm0
movss  %xmm0,-0x770(%rbp)
ff
movss  0xd0f(%rip),%xmm0
movss  %xmm0,-0x76c(%rbp)
ff
movss  0xcfb(%rip),%xmm0
movss  %xmm0,-0x768(%rbp)
ff
movss  0xce7(%rip),%xmm0
movss  %xmm0,-0x764(%rbp)
ff
movss  0xcd3(%rip),%xmm0
movss  %xmm0,-0x760(%rbp)
ff
movss  0xcbf(%rip),%xmm0
movss  %xmm0,-0x75c(%rbp)
ff
movss  0xcab(%rip),%xmm0
movss  %xmm0,-0x758(%rbp)
ff
movss  0xc97(%rip),%xmm0
movss  %xmm0,-0x754(%rbp)
ff
movss  0xc83(%rip),%xmm0
movss  %xmm0,-0x750(%rbp)
ff
movss  0xc6f(%rip),%xmm0
movss  %xmm0,-0x74c(%rbp)
ff
movss  0xc5b(%rip),%xmm0
movss  %xmm0,-0x748(%rbp)
ff
movss  0xc47(%rip),%xmm0
movss  %xmm0,-0x744(%rbp)
ff
movss  0xc33(%rip),%xmm0
movss  %xmm0,-0x740(%rbp)
ff
movss  0xc1f(%rip),%xmm0
movss  %xmm0,-0x73c(%rbp)
ff
movss  0xc0b(%rip),%xmm0
movss  %xmm0,-0x738(%rbp)
ff
movss  0xbf7(%rip),%xmm0
movss  %xmm0,-0x734(%rbp)
ff
movss  0xbe3(%rip),%xmm0
movss  %xmm0,-0x730(%rbp)
ff
movss  0xbcf(%rip),%xmm0
movss  %xmm0,-0x72c(%rbp)
ff
movss  0xbbb(%rip),%xmm0
movss  %xmm0,-0x728(%rbp)
ff
movss  0xba7(%rip),%xmm0
movss  %xmm0,-0x724(%rbp)
ff
movss  0xb93(%rip),%xmm0
movss  %xmm0,-0x720(%rbp)
ff
movss  0xb7f(%rip),%xmm0
movss  %xmm0,-0x71c(%rbp)
ff
movss  0xb6b(%rip),%xmm0
movss  %xmm0,-0x718(%rbp)
ff
movss  0xb57(%rip),%xmm0
movss  %xmm0,-0x714(%rbp)
ff
movss  0xb43(%rip),%xmm0
movss  %xmm0,-0x710(%rbp)
ff
movss  0xb2f(%rip),%xmm0
movss  %xmm0,-0x70c(%rbp)
ff
movss  0xb1b(%rip),%xmm0
movss  %xmm0,-0x708(%rbp)
ff
movss  0xb07(%rip),%xmm0
movss  %xmm0,-0x704(%rbp)
ff
movss  0xaf3(%rip),%xmm0
movss  %xmm0,-0x700(%rbp)
ff
movss  0xadf(%rip),%xmm0
movss  %xmm0,-0x6fc(%rbp)
ff
movss  0xacb(%rip),%xmm0
movss  %xmm0,-0x6f8(%rbp)
ff
movss  0xab7(%rip),%xmm0
movss  %xmm0,-0x6f4(%rbp)
ff
movss  0xaa3(%rip),%xmm0
movss  %xmm0,-0x6f0(%rbp)
ff
movss  0xa8f(%rip),%xmm0
movss  %xmm0,-0x6ec(%rbp)
ff
movss  0xa7b(%rip),%xmm0
movss  %xmm0,-0x6e8(%rbp)
ff
movss  0xa67(%rip),%xmm0
movss  %xmm0,-0x6e4(%rbp)
ff
movss  0xa53(%rip),%xmm0
movss  %xmm0,-0x6e0(%rbp)
ff
movss  0xa3f(%rip),%xmm0
movss  %xmm0,-0x6dc(%rbp)
ff
movss  0xa2b(%rip),%xmm0
movss  %xmm0,-0x6d8(%rbp)
ff
movss  0xa17(%rip),%xmm0
movss  %xmm0,-0x6d4(%rbp)
ff
movss  0xa03(%rip),%xmm0
movss  %xmm0,-0x6d0(%rbp)
ff
movss  0x9ef(%rip),%xmm0
movss  %xmm0,-0x6cc(%rbp)
ff
movss  0x9db(%rip),%xmm0
movss  %xmm0,-0x6c8(%rbp)
ff
movss  0x9c7(%rip),%xmm0
movss  %xmm0,-0x6c4(%rbp)
ff
movss  0x9b3(%rip),%xmm0
movss  %xmm0,-0x6c0(%rbp)
ff
movss  0x99f(%rip),%xmm0
movss  %xmm0,-0x6bc(%rbp)
ff
movss  0x98b(%rip),%xmm0
movss  %xmm0,-0x6b8(%rbp)
ff
movss  0x977(%rip),%xmm0
movss  %xmm0,-0x6b4(%rbp)
ff
movss  0x963(%rip),%xmm0
movss  %xmm0,-0x6b0(%rbp)
ff
movss  0x94f(%rip),%xmm0
movss  %xmm0,-0x6ac(%rbp)
ff
movss  0x93b(%rip),%xmm0
movss  %xmm0,-0x6a8(%rbp)
ff
movss  0x927(%rip),%xmm0
movss  %xmm0,-0x6a4(%rbp)
ff
movss  0x913(%rip),%xmm0
movss  %xmm0,-0x6a0(%rbp)
ff
movss  0x8ff(%rip),%xmm0
movss  %xmm0,-0x69c(%rbp)
ff
movss  0x8eb(%rip),%xmm0
movss  %xmm0,-0x698(%rbp)
ff
movss  0x8d7(%rip),%xmm0
movss  %xmm0,-0x694(%rbp)
ff
movsd  0x8bf(%rip),%xmm0
movsd  %xmm0,-0xfd0(%rbp)
ff
movsd  0x8a7(%rip),%xmm0
movsd  %xmm0,-0xfc8(%rbp)
ff
movsd  0x88f(%rip),%xmm0
movsd  %xmm0,-0xfc0(%rbp)
ff
movsd  0x877(%rip),%xmm0
movsd  %xmm0,-0xfb8(%rbp)
ff
movsd  0x85f(%rip),%xmm0
movsd  %xmm0,-0xfb0(%rbp)
ff
movsd  0x847(%rip),%xmm0
movsd  %xmm0,-0xfa8(%rbp)
ff
movsd  0x82f(%rip),%xmm0
movsd  %xmm0,-0xfa0(%rbp)
ff
movsd  0x817(%rip),%xmm0
movsd  %xmm0,-0xf98(%rbp)
ff
movsd  0x7ff(%rip),%xmm0
movsd  %xmm0,-0xf90(%rbp)
ff
movsd  0x7e7(%rip),%xmm0
movsd  %xmm0,-0xf88(%rbp)
ff
movsd  0x7cf(%rip),%xmm0
movsd  %xmm0,-0xf80(%rbp)
ff
movsd  0x7b7(%rip),%xmm0
movsd  %xmm0,-0xf78(%rbp)
ff
movsd  0x79f(%rip),%xmm0
movsd  %xmm0,-0xf70(%rbp)
ff
movsd  0x787(%rip),%xmm0
movsd  %xmm0,-0xf68(%rbp)
ff
movsd  0x76f(%rip),%xmm0
movsd  %xmm0,-0xf60(%rbp)
ff
movsd  0x757(%rip),%xmm0
movsd  %xmm0,-0xf58(%rbp)
ff
movsd  0x73f(%rip),%xmm0
movsd  %xmm0,-0xf50(%rbp)
ff
movsd  0x727(%rip),%xmm0
movsd  %xmm0,-0xf48(%rbp)
ff
movsd  0x70f(%rip),%xmm0
movsd  %xmm0,-0xf40(%rbp)
ff
movsd  0x6f7(%rip),%xmm0
movsd  %xmm0,-0xf38(%rbp)
ff
movsd  0x6df(%rip),%xmm0
movsd  %xmm0,-0xf30(%rbp)
ff
movsd  0x6c7(%rip),%xmm0
movsd  %xmm0,-0xf28(%rbp)
ff
movsd  0x6af(%rip),%xmm0
movsd  %xmm0,-0xf20(%rbp)
ff
movsd  0x697(%rip),%xmm0
movsd  %xmm0,-0xf18(%rbp)
ff
movsd  0x67f(%rip),%xmm0
movsd  %xmm0,-0xf10(%rbp)
ff
movsd  0x667(%rip),%xmm0
movsd  %xmm0,-0xf08(%rbp)
ff
movsd  0x64f(%rip),%xmm0
movsd  %xmm0,-0xf00(%rbp)
ff
movsd  0x637(%rip),%xmm0
movsd  %xmm0,-0xef8(%rbp)
ff
movsd  0x61f(%rip),%xmm0
movsd  %xmm0,-0xef0(%rbp)
ff
movsd  0x607(%rip),%xmm0
movsd  %xmm0,-0xee8(%rbp)
ff
movsd  0x5ef(%rip),%xmm0
movsd  %xmm0,-0xee0(%rbp)
ff
movsd  0x5d7(%rip),%xmm0
movsd  %xmm0,-0xed8(%rbp)
ff
movsd  0x5bf(%rip),%xmm0
movsd  %xmm0,-0xed0(%rbp)
ff
movsd  0x5a7(%rip),%xmm0
movsd  %xmm0,-0xec8(%rbp)
ff
movsd  0x58f(%rip),%xmm0
movsd  %xmm0,-0xec0(%rbp)
ff
movsd  0x577(%rip),%xmm0
movsd  %xmm0,-0xeb8(%rbp)
ff
movsd  0x55f(%rip),%xmm0
movsd  %xmm0,-0xeb0(%rbp)
ff
movsd  0x547(%rip),%xmm0
movsd  %xmm0,-0xea8(%rbp)
ff
movsd  0x52f(%rip),%xmm0
movsd  %xmm0,-0xea0(%rbp)
ff
movsd  0x517(%rip),%xmm0
movsd  %xmm0,-0xe98(%rbp)
ff
movsd  0x4ff(%rip),%xmm0
movsd  %xmm0,-0xe90(%rbp)
ff
movsd  0x4e7(%rip),%xmm0
movsd  %xmm0,-0xe88(%rbp)
ff
movsd  0x4cf(%rip),%xmm0
movsd  %xmm0,-0xe80(%rbp)
ff
movsd  0x4b7(%rip),%xmm0
movsd  %xmm0,-0xe78(%rbp)
ff
movsd  0x49f(%rip),%xmm0
movsd  %xmm0,-0xe70(%rbp)
ff
movsd  0x487(%rip),%xmm0
movsd  %xmm0,-0xe68(%rbp)
ff
movsd  0x46f(%rip),%xmm0
movsd  %xmm0,-0xe60(%rbp)
ff
movsd  0x457(%rip),%xmm0
movsd  %xmm0,-0xe58(%rbp)
ff
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x60,-0x8(%rbp)
jge    1c29 <main+0xa49>
movslq -0x8(%rbp),%rax
movss  -0x810(%rbp,%rax,4),%xmm0
ff ff
mov    -0x8(%rbp),%eax
add    $0x3c,%eax
cltq
movss  -0x360(%rbp,%rax,4),%xmm1
ff ff
mulss  -0x24(%rbp),%xmm1
ucomiss %xmm1,%xmm0
jne    1c0f <main+0xa2f>
jp     1c0f <main+0xa2f>
jmp    1c16 <main+0xa36>
movl   $0x1,-0xc(%rbp)
jmp    1c1b <main+0xa3b>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1bce <main+0x9ee>
movl   $0x0,-0x8(%rbp)
cmpl   $0x30,-0x8(%rbp)
jge    1c8f <main+0xaaf>
movslq -0x8(%rbp),%rax
movsd  -0xfd0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x8(%rbp),%eax
add    $0x27,%eax
cltq
movsd  -0xb30(%rbp,%rax,8),%xmm1
ff ff
mulsd  -0x818(%rbp),%xmm1
ff
ucomisd %xmm1,%xmm0
jne    1c75 <main+0xa95>
jp     1c75 <main+0xa95>
jmp    1c7c <main+0xa9c>
movl   $0x1,-0x10(%rbp)
jmp    1c81 <main+0xaa1>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1c30 <main+0xa50>
cmpl   $0x1,-0xc(%rbp)
jne    1cd1 <main+0xaf1>
lea    0x82c(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x65a(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x679(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x802(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
cmpl   $0x1,-0x10(%rbp)
jne    1d13 <main+0xb33>
lea    0x7ea(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x66b(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x68a(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x7c0(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
mov    -0x18(%rbp),%rdi
mov    $0x0,%al
call   10a0 <rlxs_get@plt>
mov    -0x20(%rbp),%rdi
mov    $0x0,%al
call   10d0 <rlxd_get@plt>
movl   $0x0,-0x8(%rbp)
cmpl   $0xa,-0x8(%rbp)
jge    1d6e <main+0xb8e>
lea    -0x360(%rbp),%rdi
mov    $0xcc,%esi
mov    $0x0,%al
call   1100 <ranlxs@plt>
lea    -0xb30(%rbp),%rdi
mov    $0x63,%esi
mov    $0x0,%al
call   1090 <ranlxd@plt>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1d30 <main+0xb50>
mov    -0x18(%rbp),%rdi
mov    $0x0,%al
call   1060 <rlxs_reset@plt>
mov    -0x20(%rbp),%rdi
mov    $0x0,%al
call   10e0 <rlxd_reset@plt>
movl   $0x0,-0x8(%rbp)
cmpl   $0xa,-0x8(%rbp)
jge    1dc9 <main+0xbe9>
lea    -0x690(%rbp),%rdi
mov    $0xcc,%esi
mov    $0x0,%al
call   1100 <ranlxs@plt>
lea    -0xe50(%rbp),%rdi
mov    $0x63,%esi
mov    $0x0,%al
call   1090 <ranlxd@plt>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1d8b <main+0xbab>
movl   $0x0,-0x8(%rbp)
cmpl   $0xcc,-0x8(%rbp)
jge    1e21 <main+0xc41>
movslq -0x8(%rbp),%rax
movss  -0x360(%rbp,%rax,4),%xmm0
ff ff
movslq -0x8(%rbp),%rax
ucomiss -0x690(%rbp,%rax,4),%xmm0
ff
jne    1e07 <main+0xc27>
jp     1e07 <main+0xc27>
jmp    1e0e <main+0xc2e>
movl   $0x2,-0xc(%rbp)
jmp    1e13 <main+0xc33>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1dd0 <main+0xbf0>
movl   $0x0,-0x8(%rbp)
cmpl   $0x63,-0x8(%rbp)
jge    1e77 <main+0xc97>
movslq -0x8(%rbp),%rax
movsd  -0xb30(%rbp,%rax,8),%xmm0
ff ff
movslq -0x8(%rbp),%rax
ucomisd -0xe50(%rbp,%rax,8),%xmm0
ff ff
jne    1e5d <main+0xc7d>
jp     1e5d <main+0xc7d>
jmp    1e64 <main+0xc84>
movl   $0x2,-0x10(%rbp)
jmp    1e69 <main+0xc89>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1e28 <main+0xc48>
cmpl   $0x2,-0xc(%rbp)
jne    1eb9 <main+0xcd9>
lea    0x644(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x518(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x491(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x61a(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
cmpl   $0x2,-0x10(%rbp)
jne    1efb <main+0xd1b>
lea    0x602(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x511(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x4a2(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x5d8(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
cmpl   $0x0,-0xc(%rbp)
jne    1f4c <main+0xd6c>
cmpl   $0x0,-0x10(%rbp)
jne    1f4c <main+0xd6c>
lea    0x5b6(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x500(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x504(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x58c(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
jmp    1fdf <main+0xdff>
cmpl   $0x0,-0xc(%rbp)
jne    1f93 <main+0xdb3>
lea    0x56f(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x500(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x50e(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x545(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
jmp    1fda <main+0xdfa>
cmpl   $0x0,-0x10(%rbp)
jne    1fd5 <main+0xdf5>
lea    0x528(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x500(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x50e(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
lea    0x4fe(%rip),%rdi
mov    $0x0,%al
call   1080 <printf@plt>
jmp    1fda <main+0xdfa>
jmp    1fdf <main+0xdff>
xor    %edi,%edi
call   10f0 <exit@plt>

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xfb8,%rsp
movsd  0xdf7(%rip),%xmm0
mov    $0x18,%edi
call   1050 <ldexp@plt>
movsd  %xmm0,0x8(%rsp)
movsd  0xddf(%rip),%xmm0
mov    $0x30,%edi
call   1050 <ldexp@plt>
movaps %xmm0,0x10(%rsp)
xor    %ebp,%ebp
xor    %eax,%eax
call   1070 <rlxs_size@plt>
movslq %eax,%rdi
shl    $0x2,%rdi
call   10d0 <malloc@plt>
mov    %rax,%r14
xor    %eax,%eax
call   10c0 <rlxd_size@plt>
movslq %eax,%rdi
shl    $0x2,%rdi
call   10d0 <malloc@plt>
mov    %rax,%r15
xor    %edi,%edi
mov    $0x7fff,%esi
xor    %eax,%eax
call   1040 <rlxs_init@plt>
mov    $0x1,%edi
mov    $0x7fff,%esi
xor    %eax,%eax
call   1090 <rlxd_init@plt>
lea    0x320(%rsp),%r12
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
lea    0x650(%rsp),%rbx
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
movaps 0xb24(%rip),%xmm0
movaps %xmm0,0x1a0(%rsp)
movaps 0xb25(%rip),%xmm0
movaps %xmm0,0x1b0(%rsp)
movaps 0xb26(%rip),%xmm0
movaps %xmm0,0x1c0(%rsp)
movaps 0xb27(%rip),%xmm0
movaps %xmm0,0x1d0(%rsp)
movaps 0xb28(%rip),%xmm0
movaps %xmm0,0x1e0(%rsp)
movaps 0xb29(%rip),%xmm0
movaps %xmm0,0x1f0(%rsp)
movaps 0xb2a(%rip),%xmm0
movaps %xmm0,0x200(%rsp)
movaps 0xb2b(%rip),%xmm0
movaps %xmm0,0x210(%rsp)
movaps 0xb2c(%rip),%xmm0
movaps %xmm0,0x220(%rsp)
movaps 0xb2d(%rip),%xmm0
movaps %xmm0,0x230(%rsp)
movaps 0xb2e(%rip),%xmm0
movaps %xmm0,0x240(%rsp)
movaps 0xb2f(%rip),%xmm0
movaps %xmm0,0x250(%rsp)
movaps 0xb30(%rip),%xmm0
movaps %xmm0,0x260(%rsp)
movaps 0xb31(%rip),%xmm0
movaps %xmm0,0x270(%rsp)
movaps 0xb32(%rip),%xmm0
movaps %xmm0,0x280(%rsp)
movaps 0xb33(%rip),%xmm0
movaps %xmm0,0x290(%rsp)
movaps 0xb34(%rip),%xmm0
movaps %xmm0,0x2a0(%rsp)
movaps 0xb35(%rip),%xmm0
movaps %xmm0,0x2b0(%rsp)
movaps 0xb36(%rip),%xmm0
movaps %xmm0,0x2c0(%rsp)
movaps 0xb37(%rip),%xmm0
movaps %xmm0,0x2d0(%rsp)
movaps 0xb38(%rip),%xmm0
movaps %xmm0,0x2e0(%rsp)
movaps 0xb39(%rip),%xmm0
movaps %xmm0,0x2f0(%rsp)
movaps 0xb3a(%rip),%xmm0
movaps %xmm0,0x300(%rsp)
movaps 0xb3b(%rip),%xmm0
movaps %xmm0,0x310(%rsp)
movaps 0xb3c(%rip),%xmm0
movaps %xmm0,0x20(%rsp)
movaps 0xb40(%rip),%xmm0
movaps %xmm0,0x30(%rsp)
movaps 0xb44(%rip),%xmm0
movaps %xmm0,0x40(%rsp)
movaps 0xb48(%rip),%xmm0
movaps %xmm0,0x50(%rsp)
movaps 0xb4c(%rip),%xmm0
movaps %xmm0,0x60(%rsp)
movaps 0xb50(%rip),%xmm0
movaps %xmm0,0x70(%rsp)
movaps 0xb54(%rip),%xmm0
movaps %xmm0,0x80(%rsp)
movaps 0xb55(%rip),%xmm0
movaps %xmm0,0x90(%rsp)
movaps 0xb56(%rip),%xmm0
movaps %xmm0,0xa0(%rsp)
movaps 0xb57(%rip),%xmm0
movaps %xmm0,0xb0(%rsp)
movaps 0xb58(%rip),%xmm0
movaps %xmm0,0xc0(%rsp)
movaps 0xb59(%rip),%xmm0
movaps %xmm0,0xd0(%rsp)
movaps 0xb5a(%rip),%xmm0
movaps %xmm0,0xe0(%rsp)
movaps 0xb5b(%rip),%xmm0
movaps %xmm0,0xf0(%rsp)
movaps 0xb5c(%rip),%xmm0
movaps %xmm0,0x100(%rsp)
movaps 0xb5d(%rip),%xmm0
movaps %xmm0,0x110(%rsp)
movaps 0xb5e(%rip),%xmm0
movaps %xmm0,0x120(%rsp)
movaps 0xb5f(%rip),%xmm0
movaps %xmm0,0x130(%rsp)
movaps 0xb60(%rip),%xmm0
movaps %xmm0,0x140(%rsp)
movaps 0xb61(%rip),%xmm0
movaps %xmm0,0x150(%rsp)
movaps 0xb62(%rip),%xmm0
movaps %xmm0,0x160(%rsp)
movaps 0xb63(%rip),%xmm0
movaps %xmm0,0x170(%rsp)
movaps 0xb64(%rip),%xmm0
movaps %xmm0,0x180(%rsp)
movaps 0xb65(%rip),%xmm0
movaps %xmm0,0x190(%rsp)
movsd  0x8(%rsp),%xmm0
cvtsd2ss %xmm0,%xmm1
shufps $0x0,%xmm1,%xmm1
xorps  %xmm0,%xmm0
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movaps 0x410(%rsp,%rbp,4),%xmm2
mulps  %xmm1,%xmm2
cmpneqps 0x1a0(%rsp,%rbp,4),%xmm2
movaps 0x420(%rsp,%rbp,4),%xmm3
mulps  %xmm1,%xmm3
cmpneqps 0x1b0(%rsp,%rbp,4),%xmm3
movaps 0x430(%rsp,%rbp,4),%xmm4
mulps  %xmm1,%xmm4
cmpneqps 0x1c0(%rsp,%rbp,4),%xmm4
orps   %xmm3,%xmm4
orps   %xmm2,%xmm4
movaps %xmm4,%xmm2
andnps %xmm0,%xmm2
movaps %xmm2,%xmm0
psubd  %xmm4,%xmm0
add    $0xc,%rbp
cmp    $0x60,%rbp
jne    17c0 <main+0x5d0>
xorps  %xmm1,%xmm1
pcmpeqd %xmm1,%xmm0
movmskps %xmm0,%ecx
mov    %ecx,%eax
xor    $0xf,%eax
xor    %ebp,%ebp
cmp    $0xf,%ecx
movsd  0x788(%rsp),%xmm0
movapd 0x10(%rsp),%xmm6
mulsd  %xmm6,%xmm0
cmpneqsd 0x7bf(%rip),%xmm0
setne  %bpl
movq   %xmm0,%r13
and    $0x1,%r13d
movd   %r13d,%xmm0
pshufd $0x50,%xmm0,%xmm3
movapd %xmm6,%xmm1
unpcklpd %xmm6,%xmm1
xor    %ecx,%ecx
movaps 0xa9f(%rip),%xmm2
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movupd 0x28(%rsp,%rcx,8),%xmm5
movapd 0x790(%rsp,%rcx,8),%xmm4
mulpd  %xmm1,%xmm4
cmpneqpd %xmm5,%xmm4
shufps $0xe8,%xmm4,%xmm4
movaps %xmm4,%xmm5
andnps %xmm3,%xmm5
andps  %xmm2,%xmm4
orps   %xmm5,%xmm4
cmp    $0x2c,%rcx
je     18dc <main+0x6ec>
movupd 0x38(%rsp,%rcx,8),%xmm5
movapd 0x7a0(%rsp,%rcx,8),%xmm3
mulpd  %xmm1,%xmm3
cmpneqpd %xmm5,%xmm3
shufps $0xe8,%xmm3,%xmm3
movaps %xmm3,%xmm5
andnps %xmm4,%xmm5
andps  %xmm2,%xmm3
orps   %xmm5,%xmm3
add    $0x4,%rcx
jmp    1880 <main+0x690>
movq   %xmm4,%rcx
pshufd $0x50,%xmm0,%xmm0
movq   %xmm0,%rdx
cmp    %rdx,%rcx
mov    $0x1,%ecx
cmovne %ecx,%r13d
mulsd  0x900(%rsp),%xmm6
ucomisd 0x198(%rsp),%xmm6
cmovne %ecx,%r13d
cmovp  %ecx,%r13d
test   %al,%al
je     1941 <main+0x751>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xbae(%rip),%rdi
call   1060 <puts@plt>
lea    0xbce(%rip),%rdi
call   1060 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
test   %r13d,%r13d
je     1972 <main+0x782>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xb2c(%rip),%rdi
call   1060 <puts@plt>
lea    0xb4c(%rip),%rdi
call   1060 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    %r14,%rdi
xor    %eax,%eax
call   10b0 <rlxs_get@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   10e0 <rlxd_get@plt>
lea    0x320(%rsp),%r12
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
lea    0x650(%rsp),%rbx
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r12,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r14,%rdi
xor    %eax,%eax
call   1080 <rlxs_reset@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   10f0 <rlxd_reset@plt>
lea    0x970(%rsp),%r14
mov    %r14,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
lea    0xca0(%rsp),%rbx
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r14,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r14,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r14,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r14,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r14,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r14,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r14,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r14,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
mov    %r14,%rdi
mov    $0xcc,%esi
xor    %eax,%eax
call   1110 <ranlxs@plt>
mov    %rbx,%rdi
mov    $0x63,%esi
xor    %eax,%eax
call   10a0 <ranlxd@plt>
movd   %ebp,%xmm0
pshufd $0x0,%xmm0,%xmm3
mov    $0xc,%eax
movaps 0x6f9(%rip),%xmm1
movdqa %xmm3,%xmm4
nopl   0x0(%rax,%rax,1)
movaps 0x940(%rsp,%rax,4),%xmm5
movaps 0x950(%rsp,%rax,4),%xmm2
cmpneqps 0x2f0(%rsp,%rax,4),%xmm5
cmpneqps 0x300(%rsp,%rax,4),%xmm2
movaps %xmm5,%xmm6
andnps %xmm3,%xmm6
andps  %xmm1,%xmm5
orps   %xmm6,%xmm5
movaps %xmm2,%xmm3
andnps %xmm4,%xmm3
andps  %xmm1,%xmm2
orps   %xmm3,%xmm2
cmp    $0xcc,%rax
je     1cb5 <main+0xac5>
movaps 0x960(%rsp,%rax,4),%xmm3
movaps 0x970(%rsp,%rax,4),%xmm4
cmpneqps 0x310(%rsp,%rax,4),%xmm3
cmpneqps 0x320(%rsp,%rax,4),%xmm4
movaps %xmm3,%xmm6
andnps %xmm5,%xmm6
andps  %xmm1,%xmm3
orps   %xmm6,%xmm3
movaps %xmm4,%xmm5
andnps %xmm2,%xmm5
andps  %xmm1,%xmm4
orps   %xmm5,%xmm4
add    $0x10,%rax
jmp    1c30 <main+0xa40>
pshufd $0x0,%xmm0,%xmm0
movaps %xmm5,%xmm1
pcmpeqd %xmm0,%xmm1
andps  %xmm1,%xmm2
andnps %xmm5,%xmm1
orps   %xmm2,%xmm1
pcmpeqd %xmm0,%xmm1
movmskps %xmm1,%eax
cmp    $0xf,%eax
mov    $0x2,%eax
cmovne %eax,%ebp
movss  0x640(%rsp),%xmm0
ucomiss 0xc90(%rsp),%xmm0
cmovne %eax,%ebp
cmovp  %eax,%ebp
movss  0x644(%rsp),%xmm0
ucomiss 0xc94(%rsp),%xmm0
cmovne %eax,%ebp
cmovp  %eax,%ebp
movss  0x648(%rsp),%xmm0
ucomiss 0xc98(%rsp),%xmm0
cmovne %eax,%ebp
cmovp  %eax,%ebp
movss  0x64c(%rsp),%xmm0
ucomiss 0xc9c(%rsp),%xmm0
cmovne %eax,%ebp
cmovp  %eax,%ebp
movd   %r13d,%xmm0
pshufd $0x50,%xmm0,%xmm3
mov    $0x6,%eax
movaps 0x5e2(%rip),%xmm1
xchg   %ax,%ax
movapd 0xc70(%rsp,%rax,8),%xmm2
cmpneqpd 0x620(%rsp,%rax,8),%xmm2
shufps $0xe8,%xmm2,%xmm2
movaps %xmm2,%xmm4
andnps %xmm3,%xmm4
andps  %xmm1,%xmm2
orps   %xmm4,%xmm2
cmp    $0x66,%rax
je     1dd8 <main+0xbe8>
movapd 0xc80(%rsp,%rax,8),%xmm3
movapd 0xc90(%rsp,%rax,8),%xmm4
movapd 0xca0(%rsp,%rax,8),%xmm5
cmpneqpd 0x630(%rsp,%rax,8),%xmm3
cmpneqpd 0x640(%rsp,%rax,8),%xmm4
cmpneqpd 0x650(%rsp,%rax,8),%xmm5
orpd   %xmm4,%xmm5
orpd   %xmm3,%xmm5
pshufd $0xe8,%xmm5,%xmm3
movdqa %xmm3,%xmm4
pandn  %xmm2,%xmm4
pand   %xmm1,%xmm3
por    %xmm4,%xmm3
add    $0x8,%rax
jmp    1d50 <main+0xb60>
movq   %xmm2,%rax
pshufd $0x50,%xmm0,%xmm0
movq   %xmm0,%rcx
cmp    %rcx,%rax
mov    $0x2,%eax
cmovne %eax,%r13d
movsd  0x960(%rsp),%xmm0
ucomisd 0xfb0(%rsp),%xmm0
cmovne %eax,%r13d
cmovp  %eax,%r13d
cmp    $0x2,%ebp
jne    1e3e <main+0xc4e>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x626(%rip),%rdi
call   1060 <puts@plt>
lea    0x6d1(%rip),%rdi
call   1060 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
cmp    $0x2,%r13d
jne    1e84 <main+0xc94>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x5ba(%rip),%rdi
call   1060 <puts@plt>
lea    0x64e(%rip),%rdi
call   1060 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
test   %ebp,%ebp
jne    1ecc <main+0xcdc>
lea    0x525(%rip),%r14
lea    0x503(%rip),%rbx
jmp    1ed3 <main+0xce3>
mov    %ebp,%eax
or     %r13d,%eax
lea    0x53a(%rip),%rax
lea    0x4ee(%rip),%rcx
cmove  %rax,%rcx
lea    0x539(%rip),%rax
lea    0x4f7(%rip),%rdx
cmove  %rax,%rdx
lea    0x48c(%rip),%rbx
test   %ebp,%ebp
cmove  %rcx,%rbx
lea    0x49a(%rip),%r14
cmove  %rdx,%r14
je     1ed3 <main+0xce3>
test   %r13d,%r13d
je     1ed3 <main+0xce3>
xor    %edi,%edi
call   1100 <exit@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    %rbx,%rdi
call   1060 <puts@plt>
mov    %r14,%rdi
call   1060 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
xor    %edi,%edi
call   1100 <exit@plt>

LLVM IR (-O0):
@.str = [2 x i8] c"\0A\00"
@.str.1 = [45 x i8] c"Test failed: ranlxs gives incorrect results\0A\00"
@.str.2 = [38 x i8] c"=> do not use ranlxs on this machine\0A\00"
@.str.3 = [45 x i8] c"Test failed: ranlxd gives incorrect results\0A\00"
@.str.4 = [38 x i8] c"=> do not use ranlxd on this machine\0A\00"
@.str.5 = [59 x i8] c"Test failed: I/O routines for ranlxs do not work properly\0A\00"
@.str.6 = [59 x i8] c"Test failed: I/O routines for ranlxd do not work properly\0A\00"
@.str.7 = [18 x i8] c"All tests passed\0A\00"
@.str.8 = [53 x i8] c"=> ranlxs and ranlxd work correctly on this machine\0A\00"
@.str.9 = [28 x i8] c"All tests on ranlxs passed\0A\00"
@.str.10 = [43 x i8] c"=> ranlxs works correctly on this machine\0A\00"
@.str.11 = [28 x i8] c"All tests on ranlxd passed\0A\00"
@.str.12 = [43 x i8] c"=> ranlxd works correctly on this machine\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32*
%6 = alloca i32*
%7 = alloca float
%8 = alloca [204 x float]
%9 = alloca [204 x float]
%10 = alloca [96 x float]
%11 = alloca double
%12 = alloca [99 x double]
%13 = alloca [99 x double]
%14 = alloca [48 x double]
store i32 0, i32* %1
%15 = call double @ldexp(double 1.000000e+00, i32 24)
%16 = fptrunc double %15 to float
store float %16, float* %7
%17 = call double @ldexp(double 1.000000e+00, i32 48)
store double %17, double* %11
%18 = call i32 (...) @rlxs_size()
%19 = sext i32 %18 to i64
%20 = mul i64 %19, 4
%21 = call i8* @malloc(i64 %20)
%22 = bitcast i8* %21 to i32*
store i32* %22, i32** %5
%23 = call i32 (...) @rlxd_size()
%24 = sext i32 %23 to i64
%25 = mul i64 %24, 4
%26 = call i8* @malloc(i64 %25)
%27 = bitcast i8* %26 to i32*
store i32* %27, i32** %6
%28 = call i32 (i32, i32, ...) bitcast (i32 (...)* @rlxs_init to i32 (i32, i32, ...)*)(i32 0, i32 32767)
%29 = call i32 (i32, i32, ...) bitcast (i32 (...)* @rlxd_init to i32 (i32, i32, ...)*)(i32 1, i32 32767)
store i32 0, i32* %2
br label %30
30: ; preds = %38, %0
%31 = load i32, i32* %2
%32 = icmp slt i32 %31, 20
br i1 %32, label %33, label %41
33: ; preds = %30
%34 = getelementptr inbounds [204 x float], [204 x float]* %8, i64 0, i64 0
%35 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %34, i32 204)
%36 = getelementptr inbounds [99 x double], [99 x double]* %12, i64 0, i64 0
%37 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %36, i32 99)
br label %38
38: ; preds = %33
%39 = load i32, i32* %2
%40 = add nsw i32 %39, 1
store i32 %40, i32* %2
br label %30
41: ; preds = %30
%42 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 0
store float 0x4169495CA0000000, float* %42
%43 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 1
store float 0x416E04CE40000000, float* %43
%44 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 2
store float 0x4154C8E5C0000000, float* %44
%45 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 3
store float 0x4162549B60000000, float* %45
%46 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 4
store float 0x412FEC1200000000, float* %46
%47 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 5
store float 2.811360e+06, float* %47
%48 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 6
store float 0x416C76F9C0000000, float* %48
%49 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 7
store float 0x4141743D80000000, float* %49
%50 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 8
store float 0x416EC58A80000000, float* %50
%51 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 9
store float 0x416F24D000000000, float* %51
%52 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 10
store float 0x4168C1FF40000000, float* %52
%53 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 11
store float 0x4161A7FFE0000000, float* %53
%54 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 12
store float 0x41557DB680000000, float* %54
%55 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 13
store float 0x415C50FC40000000, float* %55
%56 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 14
store float 0x41570306C0000000, float* %56
%57 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 15
store float 0x416C8DF980000000, float* %57
%58 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 16
store float 0x4164710B00000000, float* %58
%59 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 17
store float 0x41433B9700000000, float* %59
%60 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 18
store float 0x4160FCB2E0000000, float* %60
%61 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 19
store float 0x41603A0440000000, float* %61
%62 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 20
store float 0x4166BEC3C0000000, float* %62
%63 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 21
store float 0x4166F84960000000, float* %63
%64 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 22
store float 0x416763CDA0000000, float* %64
%65 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 23
store float 0x41526BA040000000, float* %65
%66 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 24
store float 0x4154384700000000, float* %66
%67 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 25
store float 0x416974FB00000000, float* %67
%68 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 26
store float 0x4164BB83C0000000, float* %68
%69 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 27
store float 0x41604041E0000000, float* %69
%70 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 28
store float 0x4165639020000000, float* %70
%71 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 29
store float 0x416B8A7300000000, float* %71
%72 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 30
store float 0x4155CE7F00000000, float* %72
%73 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 31
store float 0x4169F0D800000000, float* %73
%74 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 32
store float 0x4167EDC560000000, float* %74
%75 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 33
store float 0x414A728D80000000, float* %75
%76 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 34
store float 1.139060e+05, float* %76
%77 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 35
store float 0x4163D9F8E0000000, float* %77
%78 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 36
store float 0x4166FFFC80000000, float* %78
%79 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 37
store float 0x4150C00240000000, float* %79
%80 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 38
store float 1.634350e+06, float* %80
%81 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 39
store float 9.823280e+06, float* %81
%82 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 40
store float 0x4167F98B40000000, float* %82
%83 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 41
store float 0x415F8A1400000000, float* %83
%84 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 42
store float 0x415663EF40000000, float* %84
%85 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 43
store float 0x415B813AC0000000, float* %85
%86 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 44
store float 0x4134C9B900000000, float* %86
%87 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 45
store float 0x41468F3680000000, float* %87
%88 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 46
store float 5.044650e+05, float* %88
%89 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 47
store float 0x41596C6F00000000, float* %89
%90 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 48
store float 0x41571330C0000000, float* %90
%91 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 49
store float 0x4130C31D00000000, float* %91
%92 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 50
store float 1.261330e+06, float* %92
%93 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 51
store float 0x4142519780000000, float* %93
%94 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 52
store float 0x415ED9C540000000, float* %94
%95 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 53
store float 0x4133BE6D00000000, float* %95
%96 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 54
store float 5.554940e+05, float* %96
%97 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 55
store float 0x416C5DF360000000, float* %97
%98 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 56
store float 0x41657ACBC0000000, float* %98
%99 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 57
store float 1.668130e+05, float* %99
%100 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 58
store float 0x41699AF080000000, float* %100
%101 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 59
store float 0x416D255640000000, float* %101
%102 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 60
store float 0x4151B7A440000000, float* %102
%103 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 61
store float 0x41582926C0000000, float* %103
%104 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 62
store float 0x416318F320000000, float* %104
%105 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 63
store float 0x415A3CD300000000, float* %105
%106 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 64
store float 0x4161808900000000, float* %106
%107 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 65
store float 0x415FF70A40000000, float* %107
%108 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 66
store float 0x41651F34A0000000, float* %108
%109 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 67
store float 0x4142CF7C80000000, float* %109
%110 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 68
store float 0x416A0101C0000000, float* %110
%111 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 69
store float 0x416843BE20000000, float* %111
%112 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 70
store float 5.697250e+05, float* %112
%113 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 71
store float 0x41585199C0000000, float* %113
%114 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 72
store float 2.164250e+06, float* %114
%115 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 73
store float 0x4159A83F40000000, float* %115
%116 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 74
store float 0x415B8DD100000000, float* %116
%117 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 75
store float 0x4152A83A80000000, float* %117
%118 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 76
store float 0x41658CBAA0000000, float* %118
%119 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 77
store float 0x41670D6080000000, float* %119
%120 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 78
store float 0x4150F77680000000, float* %120
%121 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 79
store float 0x4131C5EE00000000, float* %121
%122 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 80
store float 0x413D0F0F00000000, float* %122
%123 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 81
store float 0x416FCB91E0000000, float* %123
%124 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 82
store float 0x4143BC4700000000, float* %124
%125 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 83
store float 0x414B826600000000, float* %125
%126 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 84
store float 0x416E0FD740000000, float* %126
%127 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 85
store float 0x416C7DD520000000, float* %127
%128 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 86
store float 0x416AA2DB20000000, float* %128
%129 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 87
store float 0x4140981680000000, float* %129
%130 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 88
store float 0x416FCB28A0000000, float* %130
%131 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 89
store float 0x416AB24740000000, float* %131
%132 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 90
store float 0x41581522C0000000, float* %132
%133 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 91
store float 0x416DD7AA80000000, float* %133
%134 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 92
store float 0x41629701E0000000, float* %134
%135 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 93
store float 0x41624DEDA0000000, float* %135
%136 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 94
store float 0x4161A1C120000000, float* %136
%137 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 95
store float 0x41520CD380000000, float* %137
%138 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 0
store double 0x42DED8BF90660380, double* %138
%139 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 1
store double 0x42ED8A5E174073E0, double* %139
%140 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 2
store double 0x42D92D24CD6913C0, double* %140
%141 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 3
store double 0x42C88B39DB1D1080, double* %141
%142 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 4
store double 0x42E6A86E612307A0, double* %142
%143 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 5
store double 0x42CCFCDEE9706700, double* %143
%144 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 6
store double 0x42E452315224C200, double* %144
%145 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 7
store double 0x42EBB0384A9C9900, double* %145
%146 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 8
store double 0x42EBD48673723220, double* %146
%147 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 9
store double 0x42E9711C8F1E07E0, double* %147
%148 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 10
store double 0x42D9DB6CD011DAC0, double* %148
%149 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 11
store double 0x42DC55213EE214C0, double* %149
%150 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 12
store double 0x42B76104B7F5A700, double* %150
%151 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 13
store double 0x42E1ACF8E7893AC0, double* %151
%152 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 14
store double 0x42E63CC531B19CA0, double* %152
%153 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 15
store double 0x42E4CF20A40104C0, double* %153
%154 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 16
store double 0x42CC510D5AB3BB80, double* %154
%155 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 17
store double 0x42E1DAAFE9F876E0, double* %155
%156 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 18
store double 0x42CA6FCD3BECA680, double* %156
%157 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 19
store double 0x42B8793599224F00, double* %157
%158 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 20
store double 0x42ED8CE071CE9A40, double* %158
%159 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 21
store double 0x42DDAE1D378740C0, double* %159
%160 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 22
store double 0x42E756DF6E8E4080, double* %160
%161 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 23
store double 0x42C2480CCBD96F00, double* %161
%162 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 24
store double 0x42E608F856765520, double* %162
%163 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 25
store double 0x42EB40C74E09F320, double* %163
%164 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 26
store double 0x42C8C0E8A324B880, double* %164
%165 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 27
store double 0x42BC7AAAE680A400, double* %165
%166 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 28
store double 0x42E1621E21176620, double* %166
%167 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 29
store double 0x42ED2006155DFFC0, double* %167
%168 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 30
store double 0x42D913D9068FA200, double* %168
%169 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 31
store double 0x42B826D853A5D500, double* %169
%170 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 32
store double 0x42EA064186708880, double* %170
%171 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 33
store double 0x42DCD6EC801B83C0, double* %171
%172 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 34
store double 0x42E009A6B375B960, double* %172
%173 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 35
store double 0x42D5DDE3FFD80780, double* %173
%174 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 36
store double 0x42ED79C79F764DE0, double* %174
%175 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 37
store double 0x42CDAD04C2937580, double* %175
%176 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 38
store double 0x42A9EDB24B472E00, double* %176
%177 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 39
store double 0x42DF54B78AC7D740, double* %177
%178 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 40
store double 0x42EEA965B8033300, double* %178
%179 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 41
store double 0x42C045A4A96EFC00, double* %179
%180 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 42
store double 0x42C765412DE94F80, double* %180
%181 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 43
store double 0x42EC2D7323E09DE0, double* %181
%182 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 44
store double 0x42CD977D46ED4000, double* %182
%183 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 45
store double 0x42EF12D2B60DC7E0, double* %183
%184 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 46
store double 0x42842522088E6000, double* %184
%185 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 47
store double 0x42E3C55F89A0F900, double* %185
store i32 0, i32* %3
store i32 0, i32* %4
store i32 0, i32* %2
br label %186
186: ; preds = %204, %41
%187 = load i32, i32* %2
%188 = icmp slt i32 %187, 96
br i1 %188, label %189, label %207
189: ; preds = %186
%190 = load i32, i32* %2
%191 = sext i32 %190 to i64
%192 = getelementptr inbounds [96 x float], [96 x float]* %10, i64 0, i64 %191
%193 = load float, float* %192
%194 = load i32, i32* %2
%195 = add nsw i32 %194, 60
%196 = sext i32 %195 to i64
%197 = getelementptr inbounds [204 x float], [204 x float]* %8, i64 0, i64 %196
%198 = load float, float* %197
%199 = load float, float* %7
%200 = fmul float %198, %199
%201 = fcmp une float %193, %200
br i1 %201, label %202, label %203
202: ; preds = %189
store i32 1, i32* %3
br label %203
203: ; preds = %202, %189
br label %204
204: ; preds = %203
%205 = load i32, i32* %2
%206 = add nsw i32 %205, 1
store i32 %206, i32* %2
br label %186
207: ; preds = %186
store i32 0, i32* %2
br label %208
208: ; preds = %226, %207
%209 = load i32, i32* %2
%210 = icmp slt i32 %209, 48
br i1 %210, label %211, label %229
211: ; preds = %208
%212 = load i32, i32* %2
%213 = sext i32 %212 to i64
%214 = getelementptr inbounds [48 x double], [48 x double]* %14, i64 0, i64 %213
%215 = load double, double* %214
%216 = load i32, i32* %2
%217 = add nsw i32 %216, 39
%218 = sext i32 %217 to i64
%219 = getelementptr inbounds [99 x double], [99 x double]* %12, i64 0, i64 %218
%220 = load double, double* %219
%221 = load double, double* %11
%222 = fmul double %220, %221
%223 = fcmp une double %215, %222
br i1 %223, label %224, label %225
224: ; preds = %211
store i32 1, i32* %4
br label %225
225: ; preds = %224, %211
br label %226
226: ; preds = %225
%227 = load i32, i32* %2
%228 = add nsw i32 %227, 1
store i32 %228, i32* %2
br label %208
229: ; preds = %208
%230 = load i32, i32* %3
%231 = icmp eq i32 %230, 1
br i1 %231, label %232, label %237
232: ; preds = %229
%233 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%234 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.1, i64 0, i64 0))
%235 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.2, i64 0, i64 0))
%236 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
br label %237
237: ; preds = %232, %229
%238 = load i32, i32* %4
%239 = icmp eq i32 %238, 1
br i1 %239, label %240, label %245
240: ; preds = %237
%241 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%242 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.3, i64 0, i64 0))
%243 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.4, i64 0, i64 0))
%244 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
br label %245
245: ; preds = %240, %237
%246 = load i32*, i32** %5
%247 = call i32 (i32*, ...) bitcast (i32 (...)* @rlxs_get to i32 (i32*, ...)*)(i32* %246)
%248 = load i32*, i32** %6
%249 = call i32 (i32*, ...) bitcast (i32 (...)* @rlxd_get to i32 (i32*, ...)*)(i32* %248)
store i32 0, i32* %2
br label %250
250: ; preds = %258, %245
%251 = load i32, i32* %2
%252 = icmp slt i32 %251, 10
br i1 %252, label %253, label %261
253: ; preds = %250
%254 = getelementptr inbounds [204 x float], [204 x float]* %8, i64 0, i64 0
%255 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %254, i32 204)
%256 = getelementptr inbounds [99 x double], [99 x double]* %12, i64 0, i64 0
%257 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %256, i32 99)
br label %258
258: ; preds = %253
%259 = load i32, i32* %2
%260 = add nsw i32 %259, 1
store i32 %260, i32* %2
br label %250
261: ; preds = %250
%262 = load i32*, i32** %5
%263 = call i32 (i32*, ...) bitcast (i32 (...)* @rlxs_reset to i32 (i32*, ...)*)(i32* %262)
%264 = load i32*, i32** %6
%265 = call i32 (i32*, ...) bitcast (i32 (...)* @rlxd_reset to i32 (i32*, ...)*)(i32* %264)
store i32 0, i32* %2
br label %266
266: ; preds = %274, %261
%267 = load i32, i32* %2
%268 = icmp slt i32 %267, 10
br i1 %268, label %269, label %277
269: ; preds = %266
%270 = getelementptr inbounds [204 x float], [204 x float]* %9, i64 0, i64 0
%271 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %270, i32 204)
%272 = getelementptr inbounds [99 x double], [99 x double]* %13, i64 0, i64 0
%273 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %272, i32 99)
br label %274
274: ; preds = %269
%275 = load i32, i32* %2
%276 = add nsw i32 %275, 1
store i32 %276, i32* %2
br label %266
277: ; preds = %266
store i32 0, i32* %2
br label %278
278: ; preds = %293, %277
%279 = load i32, i32* %2
%280 = icmp slt i32 %279, 204
br i1 %280, label %281, label %296
281: ; preds = %278
%282 = load i32, i32* %2
%283 = sext i32 %282 to i64
%284 = getelementptr inbounds [204 x float], [204 x float]* %8, i64 0, i64 %283
%285 = load float, float* %284
%286 = load i32, i32* %2
%287 = sext i32 %286 to i64
%288 = getelementptr inbounds [204 x float], [204 x float]* %9, i64 0, i64 %287
%289 = load float, float* %288
%290 = fcmp une float %285, %289
br i1 %290, label %291, label %292
291: ; preds = %281
store i32 2, i32* %3
br label %292
292: ; preds = %291, %281
br label %293
293: ; preds = %292
%294 = load i32, i32* %2
%295 = add nsw i32 %294, 1
store i32 %295, i32* %2
br label %278
296: ; preds = %278
store i32 0, i32* %2
br label %297
297: ; preds = %312, %296
%298 = load i32, i32* %2
%299 = icmp slt i32 %298, 99
br i1 %299, label %300, label %315
300: ; preds = %297
%301 = load i32, i32* %2
%302 = sext i32 %301 to i64
%303 = getelementptr inbounds [99 x double], [99 x double]* %12, i64 0, i64 %302
%304 = load double, double* %303
%305 = load i32, i32* %2
%306 = sext i32 %305 to i64
%307 = getelementptr inbounds [99 x double], [99 x double]* %13, i64 0, i64 %306
%308 = load double, double* %307
%309 = fcmp une double %304, %308
br i1 %309, label %310, label %311
310: ; preds = %300
store i32 2, i32* %4
br label %311
311: ; preds = %310, %300
br label %312
312: ; preds = %311
%313 = load i32, i32* %2
%314 = add nsw i32 %313, 1
store i32 %314, i32* %2
br label %297
315: ; preds = %297
%316 = load i32, i32* %3
%317 = icmp eq i32 %316, 2
br i1 %317, label %318, label %323
318: ; preds = %315
%319 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%320 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.5, i64 0, i64 0))
%321 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.2, i64 0, i64 0))
%322 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
br label %323
323: ; preds = %318, %315
%324 = load i32, i32* %4
%325 = icmp eq i32 %324, 2
br i1 %325, label %326, label %331
326: ; preds = %323
%327 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%328 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.6, i64 0, i64 0))
%329 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.4, i64 0, i64 0))
%330 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
br label %331
331: ; preds = %326, %323
%332 = load i32, i32* %3
%333 = icmp eq i32 %332, 0
br i1 %333, label %334, label %342
334: ; preds = %331
%335 = load i32, i32* %4
%336 = icmp eq i32 %335, 0
br i1 %336, label %337, label %342
337: ; preds = %334
%338 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%339 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.7, i64 0, i64 0))
%340 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.8, i64 0, i64 0))
%341 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
br label %360
342: ; preds = %334, %331
%343 = load i32, i32* %3
%344 = icmp eq i32 %343, 0
br i1 %344, label %345, label %350
345: ; preds = %342
%346 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%347 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.9, i64 0, i64 0))
%348 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.10, i64 0, i64 0))
%349 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
br label %359
350: ; preds = %342
%351 = load i32, i32* %4
%352 = icmp eq i32 %351, 0
br i1 %352, label %353, label %358
353: ; preds = %350
%354 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%355 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.11, i64 0, i64 0))
%356 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.12, i64 0, i64 0))
%357 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
br label %358
358: ; preds = %353, %350
br label %359
359: ; preds = %358, %345
br label %360
360: ; preds = %359, %337
unreachable
}

LLVM IR (-O2):
@str = [27 x i8] c"All tests on ranlxd passed\00"
@str.13 = [42 x i8] c"=> ranlxd works correctly on this machine\00"
@str.14 = [27 x i8] c"All tests on ranlxs passed\00"
@str.15 = [42 x i8] c"=> ranlxs works correctly on this machine\00"
@str.16 = [17 x i8] c"All tests passed\00"
@str.17 = [52 x i8] c"=> ranlxs and ranlxd work correctly on this machine\00"
@str.18 = [58 x i8] c"Test failed: I/O routines for ranlxd do not work properly\00"
@str.20 = [58 x i8] c"Test failed: I/O routines for ranlxs do not work properly\00"
@str.22 = [44 x i8] c"Test failed: ranlxd gives incorrect results\00"
@str.23 = [37 x i8] c"=> do not use ranlxd on this machine\00"
@str.24 = [44 x i8] c"Test failed: ranlxs gives incorrect results\00"
@str.25 = [37 x i8] c"=> do not use ranlxs on this machine\00"
define i32 @main() {
%1 = alloca [204 x float]
%2 = alloca [204 x float]
%3 = alloca [96 x float]
%4 = alloca [99 x double]
%5 = alloca [99 x double]
%6 = alloca [48 x double]
%7 = bitcast [204 x float]* %1 to i8*
%8 = bitcast [204 x float]* %2 to i8*
%9 = bitcast [96 x float]* %3 to i8*
%10 = bitcast [99 x double]* %4 to i8*
%11 = bitcast [99 x double]* %5 to i8*
%12 = bitcast [48 x double]* %6 to i8*
%13 = tail call double @ldexp(double 1.000000e+00, i32 24)
%14 = tail call double @ldexp(double 1.000000e+00, i32 48)
%15 = tail call i32 (...) @rlxs_size()
%16 = sext i32 %15 to i64
%17 = shl nsw i64 %16, 2
%18 = tail call i8* @malloc(i64 %17)
%19 = tail call i32 (...) @rlxd_size()
%20 = sext i32 %19 to i64
%21 = shl nsw i64 %20, 2
%22 = tail call i8* @malloc(i64 %21)
%23 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @rlxs_init to i32 (i32, i32, ...)*)(i32 0, i32 32767)
%24 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @rlxd_init to i32 (i32, i32, ...)*)(i32 1, i32 32767)
%25 = getelementptr inbounds [204 x float], [204 x float]* %1, i64 0, i64 0
%26 = getelementptr inbounds [99 x double], [99 x double]* %4, i64 0, i64 0
%27 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%28 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%29 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%30 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%31 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%32 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%33 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%34 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%35 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%36 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%37 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%38 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%39 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%40 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%41 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%42 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%43 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%44 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%45 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%46 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%47 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%48 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%49 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%50 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%51 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%52 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%53 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%54 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%55 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%56 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%57 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%58 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%59 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%60 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%61 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%62 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%63 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%64 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%65 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%66 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%67 = bitcast i8* %18 to i32*
%68 = bitcast [96 x float]* %3 to <4 x float>*
store <4 x float> <float 0x4169495CA0000000, float 0x416E04CE40000000, float 0x4154C8E5C0000000, float 0x4162549B60000000>, <4 x float>* %68
%69 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 4
%70 = bitcast float* %69 to <4 x float>*
store <4 x float> <float 0x412FEC1200000000, float 2.811360e+06, float 0x416C76F9C0000000, float 0x4141743D80000000>, <4 x float>* %70
%71 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 8
%72 = bitcast float* %71 to <4 x float>*
store <4 x float> <float 0x416EC58A80000000, float 0x416F24D000000000, float 0x4168C1FF40000000, float 0x4161A7FFE0000000>, <4 x float>* %72
%73 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 12
%74 = bitcast float* %73 to <4 x float>*
store <4 x float> <float 0x41557DB680000000, float 0x415C50FC40000000, float 0x41570306C0000000, float 0x416C8DF980000000>, <4 x float>* %74
%75 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 16
%76 = bitcast float* %75 to <4 x float>*
store <4 x float> <float 0x4164710B00000000, float 0x41433B9700000000, float 0x4160FCB2E0000000, float 0x41603A0440000000>, <4 x float>* %76
%77 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 20
%78 = bitcast float* %77 to <4 x float>*
store <4 x float> <float 0x4166BEC3C0000000, float 0x4166F84960000000, float 0x416763CDA0000000, float 0x41526BA040000000>, <4 x float>* %78
%79 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 24
%80 = bitcast float* %79 to <4 x float>*
store <4 x float> <float 0x4154384700000000, float 0x416974FB00000000, float 0x4164BB83C0000000, float 0x41604041E0000000>, <4 x float>* %80
%81 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 28
%82 = bitcast float* %81 to <4 x float>*
store <4 x float> <float 0x4165639020000000, float 0x416B8A7300000000, float 0x4155CE7F00000000, float 0x4169F0D800000000>, <4 x float>* %82
%83 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 32
%84 = bitcast float* %83 to <4 x float>*
store <4 x float> <float 0x4167EDC560000000, float 0x414A728D80000000, float 1.139060e+05, float 0x4163D9F8E0000000>, <4 x float>* %84
%85 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 36
%86 = bitcast float* %85 to <4 x float>*
store <4 x float> <float 0x4166FFFC80000000, float 0x4150C00240000000, float 1.634350e+06, float 9.823280e+06>, <4 x float>* %86
%87 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 40
%88 = bitcast float* %87 to <4 x float>*
store <4 x float> <float 0x4167F98B40000000, float 0x415F8A1400000000, float 0x415663EF40000000, float 0x415B813AC0000000>, <4 x float>* %88
%89 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 44
%90 = bitcast float* %89 to <4 x float>*
store <4 x float> <float 0x4134C9B900000000, float 0x41468F3680000000, float 5.044650e+05, float 0x41596C6F00000000>, <4 x float>* %90
%91 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 48
%92 = bitcast float* %91 to <4 x float>*
store <4 x float> <float 0x41571330C0000000, float 0x4130C31D00000000, float 1.261330e+06, float 0x4142519780000000>, <4 x float>* %92
%93 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 52
%94 = bitcast float* %93 to <4 x float>*
store <4 x float> <float 0x415ED9C540000000, float 0x4133BE6D00000000, float 5.554940e+05, float 0x416C5DF360000000>, <4 x float>* %94
%95 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 56
%96 = bitcast float* %95 to <4 x float>*
store <4 x float> <float 0x41657ACBC0000000, float 1.668130e+05, float 0x41699AF080000000, float 0x416D255640000000>, <4 x float>* %96
%97 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 60
%98 = bitcast float* %97 to <4 x float>*
store <4 x float> <float 0x4151B7A440000000, float 0x41582926C0000000, float 0x416318F320000000, float 0x415A3CD300000000>, <4 x float>* %98
%99 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 64
%100 = bitcast float* %99 to <4 x float>*
store <4 x float> <float 0x4161808900000000, float 0x415FF70A40000000, float 0x41651F34A0000000, float 0x4142CF7C80000000>, <4 x float>* %100
%101 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 68
%102 = bitcast float* %101 to <4 x float>*
store <4 x float> <float 0x416A0101C0000000, float 0x416843BE20000000, float 5.697250e+05, float 0x41585199C0000000>, <4 x float>* %102
%103 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 72
%104 = bitcast float* %103 to <4 x float>*
store <4 x float> <float 2.164250e+06, float 0x4159A83F40000000, float 0x415B8DD100000000, float 0x4152A83A80000000>, <4 x float>* %104
%105 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 76
%106 = bitcast float* %105 to <4 x float>*
store <4 x float> <float 0x41658CBAA0000000, float 0x41670D6080000000, float 0x4150F77680000000, float 0x4131C5EE00000000>, <4 x float>* %106
%107 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 80
%108 = bitcast float* %107 to <4 x float>*
store <4 x float> <float 0x413D0F0F00000000, float 0x416FCB91E0000000, float 0x4143BC4700000000, float 0x414B826600000000>, <4 x float>* %108
%109 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 84
%110 = bitcast float* %109 to <4 x float>*
store <4 x float> <float 0x416E0FD740000000, float 0x416C7DD520000000, float 0x416AA2DB20000000, float 0x4140981680000000>, <4 x float>* %110
%111 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 88
%112 = bitcast float* %111 to <4 x float>*
store <4 x float> <float 0x416FCB28A0000000, float 0x416AB24740000000, float 0x41581522C0000000, float 0x416DD7AA80000000>, <4 x float>* %112
%113 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 92
%114 = bitcast float* %113 to <4 x float>*
store <4 x float> <float 0x41629701E0000000, float 0x41624DEDA0000000, float 0x4161A1C120000000, float 0x41520CD380000000>, <4 x float>* %114
%115 = bitcast [48 x double]* %6 to <2 x double>*
store <2 x double> <double 0x42DED8BF90660380, double 0x42ED8A5E174073E0>, <2 x double>* %115
%116 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 2
%117 = bitcast double* %116 to <2 x double>*
store <2 x double> <double 0x42D92D24CD6913C0, double 0x42C88B39DB1D1080>, <2 x double>* %117
%118 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 4
%119 = bitcast double* %118 to <2 x double>*
store <2 x double> <double 0x42E6A86E612307A0, double 0x42CCFCDEE9706700>, <2 x double>* %119
%120 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 6
%121 = bitcast double* %120 to <2 x double>*
store <2 x double> <double 0x42E452315224C200, double 0x42EBB0384A9C9900>, <2 x double>* %121
%122 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 8
%123 = bitcast double* %122 to <2 x double>*
store <2 x double> <double 0x42EBD48673723220, double 0x42E9711C8F1E07E0>, <2 x double>* %123
%124 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 10
%125 = bitcast double* %124 to <2 x double>*
store <2 x double> <double 0x42D9DB6CD011DAC0, double 0x42DC55213EE214C0>, <2 x double>* %125
%126 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 12
%127 = bitcast double* %126 to <2 x double>*
store <2 x double> <double 0x42B76104B7F5A700, double 0x42E1ACF8E7893AC0>, <2 x double>* %127
%128 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 14
%129 = bitcast double* %128 to <2 x double>*
store <2 x double> <double 0x42E63CC531B19CA0, double 0x42E4CF20A40104C0>, <2 x double>* %129
%130 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 16
%131 = bitcast double* %130 to <2 x double>*
store <2 x double> <double 0x42CC510D5AB3BB80, double 0x42E1DAAFE9F876E0>, <2 x double>* %131
%132 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 18
%133 = bitcast double* %132 to <2 x double>*
store <2 x double> <double 0x42CA6FCD3BECA680, double 0x42B8793599224F00>, <2 x double>* %133
%134 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 20
%135 = bitcast double* %134 to <2 x double>*
store <2 x double> <double 0x42ED8CE071CE9A40, double 0x42DDAE1D378740C0>, <2 x double>* %135
%136 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 22
%137 = bitcast double* %136 to <2 x double>*
store <2 x double> <double 0x42E756DF6E8E4080, double 0x42C2480CCBD96F00>, <2 x double>* %137
%138 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 24
%139 = bitcast double* %138 to <2 x double>*
store <2 x double> <double 0x42E608F856765520, double 0x42EB40C74E09F320>, <2 x double>* %139
%140 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 26
%141 = bitcast double* %140 to <2 x double>*
store <2 x double> <double 0x42C8C0E8A324B880, double 0x42BC7AAAE680A400>, <2 x double>* %141
%142 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 28
%143 = bitcast double* %142 to <2 x double>*
store <2 x double> <double 0x42E1621E21176620, double 0x42ED2006155DFFC0>, <2 x double>* %143
%144 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 30
%145 = bitcast double* %144 to <2 x double>*
store <2 x double> <double 0x42D913D9068FA200, double 0x42B826D853A5D500>, <2 x double>* %145
%146 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 32
%147 = bitcast double* %146 to <2 x double>*
store <2 x double> <double 0x42EA064186708880, double 0x42DCD6EC801B83C0>, <2 x double>* %147
%148 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 34
%149 = bitcast double* %148 to <2 x double>*
store <2 x double> <double 0x42E009A6B375B960, double 0x42D5DDE3FFD80780>, <2 x double>* %149
%150 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 36
%151 = bitcast double* %150 to <2 x double>*
store <2 x double> <double 0x42ED79C79F764DE0, double 0x42CDAD04C2937580>, <2 x double>* %151
%152 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 38
%153 = bitcast double* %152 to <2 x double>*
store <2 x double> <double 0x42A9EDB24B472E00, double 0x42DF54B78AC7D740>, <2 x double>* %153
%154 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 40
%155 = bitcast double* %154 to <2 x double>*
store <2 x double> <double 0x42EEA965B8033300, double 0x42C045A4A96EFC00>, <2 x double>* %155
%156 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 42
%157 = bitcast double* %156 to <2 x double>*
store <2 x double> <double 0x42C765412DE94F80, double 0x42EC2D7323E09DE0>, <2 x double>* %157
%158 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 44
%159 = bitcast double* %158 to <2 x double>*
store <2 x double> <double 0x42CD977D46ED4000, double 0x42EF12D2B60DC7E0>, <2 x double>* %159
%160 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 46
%161 = bitcast double* %160 to <2 x double>*
store <2 x double> <double 0x42842522088E6000, double 0x42E3C55F89A0F900>, <2 x double>* %161
%162 = fptrunc double %13 to float
%163 = insertelement <4 x float> poison, float %162, i64 0
%164 = shufflevector <4 x float> %163, <4 x float> poison, <4 x i32> zeroinitializer
br label %165
165: ; preds = %165, %0
%166 = phi i64 [ 0, %0 ], [ %200, %165 ]
%167 = phi <4 x i32> [ zeroinitializer, %0 ], [ %199, %165 ]
%168 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 %166
%169 = bitcast float* %168 to <4 x float>*
%170 = load <4 x float>, <4 x float>* %169
%171 = add nuw nsw i64 %166, 60
%172 = getelementptr inbounds [204 x float], [204 x float]* %1, i64 0, i64 %171
%173 = bitcast float* %172 to <4 x float>*
%174 = load <4 x float>, <4 x float>* %173
%175 = fmul <4 x float> %174, %164
%176 = fcmp une <4 x float> %170, %175
%177 = add nuw nsw i64 %166, 4
%178 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 %177
%179 = bitcast float* %178 to <4 x float>*
%180 = load <4 x float>, <4 x float>* %179
%181 = add nuw nsw i64 %166, 64
%182 = getelementptr inbounds [204 x float], [204 x float]* %1, i64 0, i64 %181
%183 = bitcast float* %182 to <4 x float>*
%184 = load <4 x float>, <4 x float>* %183
%185 = fmul <4 x float> %184, %164
%186 = fcmp une <4 x float> %180, %185
%187 = add nuw nsw i64 %166, 8
%188 = getelementptr inbounds [96 x float], [96 x float]* %3, i64 0, i64 %187
%189 = bitcast float* %188 to <4 x float>*
%190 = load <4 x float>, <4 x float>* %189
%191 = add nuw nsw i64 %166, 68
%192 = getelementptr inbounds [204 x float], [204 x float]* %1, i64 0, i64 %191
%193 = bitcast float* %192 to <4 x float>*
%194 = load <4 x float>, <4 x float>* %193
%195 = fmul <4 x float> %194, %164
%196 = fcmp une <4 x float> %190, %195
%197 = select <4 x i1> %196, <4 x i1> <i1 true, i1 true, i1 true, i1 true>, <4 x i1> %186
%198 = select <4 x i1> %197, <4 x i1> <i1 true, i1 true, i1 true, i1 true>, <4 x i1> %176
%199 = select <4 x i1> %198, <4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32> %167
%200 = add nuw nsw i64 %166, 12
%201 = icmp eq i64 %200, 96
br i1 %201, label %202, label %165
202: ; preds = %165
%203 = icmp ne <4 x i32> %199, zeroinitializer
%204 = bitcast <4 x i1> %203 to i4
%205 = icmp ne i4 %204, 0
%206 = zext i1 %205 to i32
%207 = getelementptr inbounds [99 x double], [99 x double]* %4, i64 0, i64 39
%208 = load double, double* %207
%209 = fmul double %14, %208
%210 = fcmp une double %209, 0x42DED8BF90660380
%211 = zext i1 %210 to i32
%212 = insertelement <2 x i32> poison, i32 %211, i64 0
%213 = shufflevector <2 x i32> %212, <2 x i32> poison, <2 x i32> zeroinitializer
%214 = insertelement <2 x double> poison, double %14, i64 0
%215 = shufflevector <2 x double> %214, <2 x double> poison, <2 x i32> zeroinitializer
br label %216
216: ; preds = %231, %202
%217 = phi i64 [ 0, %202 ], [ %243, %231 ]
%218 = phi <2 x i32> [ %213, %202 ], [ %242, %231 ]
%219 = or i64 %217, 1
%220 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 %219
%221 = bitcast double* %220 to <2 x double>*
%222 = load <2 x double>, <2 x double>* %221
%223 = add nuw nsw i64 %217, 40
%224 = getelementptr inbounds [99 x double], [99 x double]* %4, i64 0, i64 %223
%225 = bitcast double* %224 to <2 x double>*
%226 = load <2 x double>, <2 x double>* %225
%227 = fmul <2 x double> %215, %226
%228 = fcmp une <2 x double> %222, %227
%229 = select <2 x i1> %228, <2 x i32> <i32 1, i32 1>, <2 x i32> %218
%230 = icmp eq i64 %217, 44
br i1 %230, label %244, label %231
231: ; preds = %216
%232 = or i64 %217, 3
%233 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 %232
%234 = bitcast double* %233 to <2 x double>*
%235 = load <2 x double>, <2 x double>* %234
%236 = add nuw nsw i64 %217, 42
%237 = getelementptr inbounds [99 x double], [99 x double]* %4, i64 0, i64 %236
%238 = bitcast double* %237 to <2 x double>*
%239 = load <2 x double>, <2 x double>* %238
%240 = fmul <2 x double> %215, %239
%241 = fcmp une <2 x double> %235, %240
%242 = select <2 x i1> %241, <2 x i32> <i32 1, i32 1>, <2 x i32> %229
%243 = add nuw nsw i64 %217, 4
br label %216
244: ; preds = %216
%245 = bitcast <2 x i32> %229 to i64
%246 = insertelement <2 x i32> poison, i32 %211, i64 0
%247 = shufflevector <2 x i32> %246, <2 x i32> poison, <2 x i32> zeroinitializer
%248 = bitcast <2 x i32> %247 to i64
%249 = icmp eq i64 %245, %248
%250 = select i1 %249, i32 %211, i32 1
%251 = getelementptr inbounds [48 x double], [48 x double]* %6, i64 0, i64 47
%252 = load double, double* %251
%253 = getelementptr inbounds [99 x double], [99 x double]* %4, i64 0, i64 86
%254 = load double, double* %253
%255 = fmul double %14, %254
%256 = fcmp une double %252, %255
%257 = select i1 %256, i32 1, i32 %250
%258 = bitcast i8* %22 to i32*
br i1 %205, label %259, label %264
259: ; preds = %244
%260 = call i32 @putchar(i32 10)
%261 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @str.24, i64 0, i64 0))
%262 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @str.25, i64 0, i64 0))
%263 = call i32 @putchar(i32 10)
br label %264
264: ; preds = %259, %244
%265 = icmp eq i32 %257, 1
br i1 %265, label %266, label %271
266: ; preds = %264
%267 = call i32 @putchar(i32 10)
%268 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @str.22, i64 0, i64 0))
%269 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @str.23, i64 0, i64 0))
%270 = call i32 @putchar(i32 10)
br label %271
271: ; preds = %266, %264
%272 = call i32 (i32*, ...) bitcast (i32 (...)* @rlxs_get to i32 (i32*, ...)*)(i32* %67)
%273 = call i32 (i32*, ...) bitcast (i32 (...)* @rlxd_get to i32 (i32*, ...)*)(i32* %258)
%274 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%275 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%276 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%277 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%278 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%279 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%280 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%281 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%282 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%283 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%284 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%285 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%286 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%287 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%288 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%289 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%290 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%291 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%292 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %25, i32 204)
%293 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %26, i32 99)
%294 = call i32 (i32*, ...) bitcast (i32 (...)* @rlxs_reset to i32 (i32*, ...)*)(i32* %67)
%295 = call i32 (i32*, ...) bitcast (i32 (...)* @rlxd_reset to i32 (i32*, ...)*)(i32* %258)
%296 = getelementptr inbounds [204 x float], [204 x float]* %2, i64 0, i64 0
%297 = getelementptr inbounds [99 x double], [99 x double]* %5, i64 0, i64 0
%298 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %296, i32 204)
%299 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %297, i32 99)
%300 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %296, i32 204)
%301 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %297, i32 99)
%302 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %296, i32 204)
%303 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %297, i32 99)
%304 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %296, i32 204)
%305 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %297, i32 99)
%306 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %296, i32 204)
%307 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %297, i32 99)
%308 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %296, i32 204)
%309 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %297, i32 99)
%310 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %296, i32 204)
%311 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %297, i32 99)
%312 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %296, i32 204)
%313 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %297, i32 99)
%314 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %296, i32 204)
%315 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %297, i32 99)
%316 = call i32 (float*, i32, ...) bitcast (i32 (...)* @ranlxs to i32 (float*, i32, ...)*)(float* %296, i32 204)
%317 = call i32 (double*, i32, ...) bitcast (i32 (...)* @ranlxd to i32 (double*, i32, ...)*)(double* %297, i32 99)
%318 = insertelement <4 x i32> poison, i32 %206, i64 0
%319 = shufflevector <4 x i32> %318, <4 x i32> poison, <4 x i32> zeroinitializer
br label %320
320: ; preds = %342, %271
%321 = phi i64 [ 0, %271 ], [ %359, %342 ]
%322 = phi <4 x i32> [ %319, %271 ], [ %357, %342 ]
%323 = phi <4 x i32> [ %319, %271 ], [ %358, %342 ]
%324 = getelementptr inbounds [204 x float], [204 x float]* %1, i64 0, i64 %321
%325 = bitcast float* %324 to <4 x float>*
%326 = load <4 x float>, <4 x float>* %325
%327 = getelementptr inbounds float, float* %324, i64 4
%328 = bitcast float* %327 to <4 x float>*
%329 = load <4 x float>, <4 x float>* %328
%330 = getelementptr inbounds [204 x float], [204 x float]* %2, i64 0, i64 %321
%331 = bitcast float* %330 to <4 x float>*
%332 = load <4 x float>, <4 x float>* %331
%333 = getelementptr inbounds float, float* %330, i64 4
%334 = bitcast float* %333 to <4 x float>*
%335 = load <4 x float>, <4 x float>* %334
%336 = fcmp une <4 x float> %326, %332
%337 = fcmp une <4 x float> %329, %335
%338 = select <4 x i1> %336, <4 x i32> <i32 2, i32 2, i32 2, i32 2>, <4 x i32> %322
%339 = select <4 x i1> %337, <4 x i32> <i32 2, i32 2, i32 2, i32 2>, <4 x i32> %323
%340 = or i64 %321, 8
%341 = icmp eq i64 %340, 200
br i1 %341, label %401, label %342
342: ; preds = %320
%343 = getelementptr inbounds [204 x float], [204 x float]* %1, i64 0, i64 %340
%344 = bitcast float* %343 to <4 x float>*
%345 = load <4 x float>, <4 x float>* %344
%346 = getelementptr inbounds float, float* %343, i64 4
%347 = bitcast float* %346 to <4 x float>*
%348 = load <4 x float>, <4 x float>* %347
%349 = getelementptr inbounds [204 x float], [204 x float]* %2, i64 0, i64 %340
%350 = bitcast float* %349 to <4 x float>*
%351 = load <4 x float>, <4 x float>* %350
%352 = getelementptr inbounds float, float* %349, i64 4
%353 = bitcast float* %352 to <4 x float>*
%354 = load <4 x float>, <4 x float>* %353
%355 = fcmp une <4 x float> %345, %351
%356 = fcmp une <4 x float> %348, %354
%357 = select <4 x i1> %355, <4 x i32> <i32 2, i32 2, i32 2, i32 2>, <4 x i32> %338
%358 = select <4 x i1> %356, <4 x i32> <i32 2, i32 2, i32 2, i32 2>, <4 x i32> %339
%359 = add nuw nsw i64 %321, 16
br label %320
360: ; preds = %373, %401
%361 = phi i64 [ 0, %401 ], [ %400, %373 ]
%362 = phi <2 x i32> [ %437, %401 ], [ %399, %373 ]
%363 = getelementptr inbounds [99 x double], [99 x double]* %4, i64 0, i64 %361
%364 = bitcast double* %363 to <2 x double>*
%365 = load <2 x double>, <2 x double>* %364
%366 = getelementptr inbounds [99 x double], [99 x double]* %5, i64 0, i64 %361
%367 = bitcast double* %366 to <2 x double>*
%368 = load <2 x double>, <2 x double>* %367
%369 = fcmp une <2 x double> %365, %368
%370 = select <2 x i1> %369, <2 x i32> <i32 2, i32 2>, <2 x i32> %362
%371 = or i64 %361, 2
%372 = icmp eq i64 %371, 98
br i1 %372, label %438, label %373
373: ; preds = %360
%374 = getelementptr inbounds [99 x double], [99 x double]* %4, i64 0, i64 %371
%375 = bitcast double* %374 to <2 x double>*
%376 = load <2 x double>, <2 x double>* %375
%377 = getelementptr inbounds [99 x double], [99 x double]* %5, i64 0, i64 %371
%378 = bitcast double* %377 to <2 x double>*
%379 = load <2 x double>, <2 x double>* %378
%380 = fcmp une <2 x double> %376, %379
%381 = or i64 %361, 4
%382 = getelementptr inbounds [99 x double], [99 x double]* %4, i64 0, i64 %381
%383 = bitcast double* %382 to <2 x double>*
%384 = load <2 x double>, <2 x double>* %383
%385 = getelementptr inbounds [99 x double], [99 x double]* %5, i64 0, i64 %381
%386 = bitcast double* %385 to <2 x double>*
%387 = load <2 x double>, <2 x double>* %386
%388 = fcmp une <2 x double> %384, %387
%389 = or i64 %361, 6
%390 = getelementptr inbounds [99 x double], [99 x double]* %4, i64 0, i64 %389
%391 = bitcast double* %390 to <2 x double>*
%392 = load <2 x double>, <2 x double>* %391
%393 = getelementptr inbounds [99 x double], [99 x double]* %5, i64 0, i64 %389
%394 = bitcast double* %393 to <2 x double>*
%395 = load <2 x double>, <2 x double>* %394
%396 = fcmp une <2 x double> %392, %395
%397 = select <2 x i1> %396, <2 x i1> <i1 true, i1 true>, <2 x i1> %388
%398 = select <2 x i1> %397, <2 x i1> <i1 true, i1 true>, <2 x i1> %380
%399 = select <2 x i1> %398, <2 x i32> <i32 2, i32 2>, <2 x i32> %370
%400 = add nuw nsw i64 %361, 8
br label %360
401: ; preds = %320
%402 = insertelement <4 x i32> poison, i32 %206, i64 0
%403 = shufflevector <4 x i32> %402, <4 x i32> poison, <4 x i32> zeroinitializer
%404 = icmp eq <4 x i32> %338, %403
%405 = select <4 x i1> %404, <4 x i32> %339, <4 x i32> %338
%406 = insertelement <4 x i32> poison, i32 %206, i64 0
%407 = shufflevector <4 x i32> %406, <4 x i32> poison, <4 x i32> zeroinitializer
%408 = icmp ne <4 x i32> %405, %407
%409 = bitcast <4 x i1> %408 to i4
%410 = icmp eq i4 %409, 0
%411 = select i1 %410, i32 %206, i32 2
%412 = getelementptr inbounds [204 x float], [204 x float]* %1, i64 0, i64 200
%413 = load float, float* %412
%414 = getelementptr inbounds [204 x float], [204 x float]* %2, i64 0, i64 200
%415 = load float, float* %414
%416 = fcmp une float %413, %415
%417 = getelementptr inbounds [204 x float], [204 x float]* %1, i64 0, i64 201
%418 = load float, float* %417
%419 = getelementptr inbounds [204 x float], [204 x float]* %2, i64 0, i64 201
%420 = load float, float* %419
%421 = fcmp une float %418, %420
%422 = getelementptr inbounds [204 x float], [204 x float]* %1, i64 0, i64 202
%423 = load float, float* %422
%424 = getelementptr inbounds [204 x float], [204 x float]* %2, i64 0, i64 202
%425 = load float, float* %424
%426 = fcmp une float %423, %425
%427 = getelementptr inbounds [204 x float], [204 x float]* %1, i64 0, i64 203
%428 = load float, float* %427
%429 = getelementptr inbounds [204 x float], [204 x float]* %2, i64 0, i64 203
%430 = load float, float* %429
%431 = fcmp une float %428, %430
%432 = select i1 %431, i1 true, i1 %426
%433 = select i1 %432, i1 true, i1 %421
%434 = select i1 %433, i1 true, i1 %416
%435 = select i1 %434, i32 2, i32 %411
%436 = insertelement <2 x i32> poison, i32 %257, i64 0
%437 = shufflevector <2 x i32> %436, <2 x i32> poison, <2 x i32> zeroinitializer
br label %360
438: ; preds = %360
%439 = bitcast <2 x i32> %370 to i64
%440 = insertelement <2 x i32> poison, i32 %257, i64 0
%441 = shufflevector <2 x i32> %440, <2 x i32> poison, <2 x i32> zeroinitializer
%442 = bitcast <2 x i32> %441 to i64
%443 = icmp eq i64 %439, %442
%444 = select i1 %443, i32 %257, i32 2
%445 = getelementptr inbounds [99 x double], [99 x double]* %4, i64 0, i64 98
%446 = load double, double* %445
%447 = getelementptr inbounds [99 x double], [99 x double]* %5, i64 0, i64 98
%448 = load double, double* %447
%449 = fcmp une double %446, %448
%450 = select i1 %449, i32 2, i32 %444
%451 = icmp eq i32 %435, 2
br i1 %451, label %452, label %457
452: ; preds = %438
%453 = call i32 @putchar(i32 10)
%454 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @str.20, i64 0, i64 0))
%455 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @str.25, i64 0, i64 0))
%456 = call i32 @putchar(i32 10)
br label %457
457: ; preds = %452, %438
%458 = icmp eq i32 %450, 2
br i1 %458, label %459, label %465
459: ; preds = %457
%460 = call i32 @putchar(i32 10)
%461 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @str.18, i64 0, i64 0))
%462 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @str.23, i64 0, i64 0))
%463 = call i32 @putchar(i32 10)
%464 = icmp eq i32 %435, 0
br i1 %464, label %474, label %481
465: ; preds = %457
%466 = icmp eq i32 %435, 0
%467 = icmp eq i32 %450, 0
%468 = select i1 %466, i1 %467, i1 false
%469 = select i1 %468, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @str.16, i64 0, i64 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str.14, i64 0, i64 0)
%470 = select i1 %468, i8* getelementptr inbounds ([52 x i8], [52 x i8]* @str.17, i64 0, i64 0), i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.15, i64 0, i64 0)
%471 = select i1 %466, i1 true, i1 %467
%472 = select i1 %466, i8* %469, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @str, i64 0, i64 0)
%473 = select i1 %466, i8* %470, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @str.13, i64 0, i64 0)
br i1 %471, label %474, label %481
474: ; preds = %465, %459
%475 = phi i8* [ %472, %465 ], [ getelementptr inbounds ([27 x i8], [27 x i8]* @str.14, i64 0, i64 0), %459 ]
%476 = phi i8* [ %473, %465 ], [ getelementptr inbounds ([42 x i8], [42 x i8]* @str.15, i64 0, i64 0), %459 ]
%477 = call i32 @putchar(i32 10)
%478 = call i32 @puts(i8* dereferenceable(1) %475)
%479 = call i32 @puts(i8* dereferenceable(1) %476)
%480 = call i32 @putchar(i32 10)
br label %481
481: ; preds = %465, %474, %459
unreachable
}