void putWAG(double *ext_initialRates) {
  double scaler, q[20][20], daa[400];
  int i, j, r;
  daa[1 * 20 + 0] = 55.15710;
  daa[2 * 20 + 0] = 50.98480;
  daa[2 * 20 + 1] = 63.53460;
  daa[3 * 20 + 0] = 73.89980;
  daa[3 * 20 + 1] = 14.73040;
  daa[3 * 20 + 2] = 542.94200;
  daa[4 * 20 + 0] = 102.70400;
  daa[4 * 20 + 1] = 52.81910;
  daa[4 * 20 + 2] = 26.52560;
  daa[4 * 20 + 3] = 3.02949;
  daa[5 * 20 + 0] = 90.85980;
  daa[5 * 20 + 1] = 303.55000;
  daa[5 * 20 + 2] = 154.36400;
  daa[5 * 20 + 3] = 61.67830;
  daa[5 * 20 + 4] = 9.88179;
  daa[6 * 20 + 0] = 158.28500;
  daa[6 * 20 + 1] = 43.91570;
  daa[6 * 20 + 2] = 94.71980;
  daa[6 * 20 + 3] = 617.41600;
  daa[6 * 20 + 4] = 2.13520;
  daa[6 * 20 + 5] = 546.94700;
  daa[7 * 20 + 0] = 141.67200;
  daa[7 * 20 + 1] = 58.46650;
  daa[7 * 20 + 2] = 112.55600;
  daa[7 * 20 + 3] = 86.55840;
  daa[7 * 20 + 4] = 30.66740;
  daa[7 * 20 + 5] = 33.00520;
  daa[7 * 20 + 6] = 56.77170;
  daa[8 * 20 + 0] = 31.69540;
  daa[8 * 20 + 1] = 213.71500;
  daa[8 * 20 + 2] = 395.62900;
  daa[8 * 20 + 3] = 93.06760;
  daa[8 * 20 + 4] = 24.89720;
  daa[8 * 20 + 5] = 429.41100;
  daa[8 * 20 + 6] = 57.00250;
  daa[8 * 20 + 7] = 24.94100;
  daa[9 * 20 + 0] = 19.33350;
  daa[9 * 20 + 1] = 18.69790;
  daa[9 * 20 + 2] = 55.42360;
  daa[9 * 20 + 3] = 3.94370;
  daa[9 * 20 + 4] = 17.01350;
  daa[9 * 20 + 5] = 11.39170;
  daa[9 * 20 + 6] = 12.73950;
  daa[9 * 20 + 7] = 3.04501;
  daa[9 * 20 + 8] = 13.81900;
  daa[10 * 20 + 0] = 39.79150;
  daa[10 * 20 + 1] = 49.76710;
  daa[10 * 20 + 2] = 13.15280;
  daa[10 * 20 + 3] = 8.48047;
  daa[10 * 20 + 4] = 38.42870;
  daa[10 * 20 + 5] = 86.94890;
  daa[10 * 20 + 6] = 15.42630;
  daa[10 * 20 + 7] = 6.13037;
  daa[10 * 20 + 8] = 49.94620;
  daa[10 * 20 + 9] = 317.09700;
  daa[11 * 20 + 0] = 90.62650;
  daa[11 * 20 + 1] = 535.14200;
  daa[11 * 20 + 2] = 301.20100;
  daa[11 * 20 + 3] = 47.98550;
  daa[11 * 20 + 4] = 7.40339;
  daa[11 * 20 + 5] = 389.49000;
  daa[11 * 20 + 6] = 258.44300;
  daa[11 * 20 + 7] = 37.35580;
  daa[11 * 20 + 8] = 89.04320;
  daa[11 * 20 + 9] = 32.38320;
  daa[11 * 20 + 10] = 25.75550;
  daa[12 * 20 + 0] = 89.34960;
  daa[12 * 20 + 1] = 68.31620;
  daa[12 * 20 + 2] = 19.82210;
  daa[12 * 20 + 3] = 10.37540;
  daa[12 * 20 + 4] = 39.04820;
  daa[12 * 20 + 5] = 154.52600;
  daa[12 * 20 + 6] = 31.51240;
  daa[12 * 20 + 7] = 17.41000;
  daa[12 * 20 + 8] = 40.41410;
  daa[12 * 20 + 9] = 425.74600;
  daa[12 * 20 + 10] = 485.40200;
  daa[12 * 20 + 11] = 93.42760;
  daa[13 * 20 + 0] = 21.04940;
  daa[13 * 20 + 1] = 10.27110;
  daa[13 * 20 + 2] = 9.61621;
  daa[13 * 20 + 3] = 4.67304;
  daa[13 * 20 + 4] = 39.80200;
  daa[13 * 20 + 5] = 9.99208;
  daa[13 * 20 + 6] = 8.11339;
  daa[13 * 20 + 7] = 4.99310;
  daa[13 * 20 + 8] = 67.93710;
  daa[13 * 20 + 9] = 105.94700;
  daa[13 * 20 + 10] = 211.51700;
  daa[13 * 20 + 11] = 8.88360;
  daa[13 * 20 + 12] = 119.06300;
  daa[14 * 20 + 0] = 143.85500;
  daa[14 * 20 + 1] = 67.94890;
  daa[14 * 20 + 2] = 19.50810;
  daa[14 * 20 + 3] = 42.39840;
  daa[14 * 20 + 4] = 10.94040;
  daa[14 * 20 + 5] = 93.33720;
  daa[14 * 20 + 6] = 68.23550;
  daa[14 * 20 + 7] = 24.35700;
  daa[14 * 20 + 8] = 69.61980;
  daa[14 * 20 + 9] = 9.99288;
  daa[14 * 20 + 10] = 41.58440;
  daa[14 * 20 + 11] = 55.68960;
  daa[14 * 20 + 12] = 17.13290;
  daa[14 * 20 + 13] = 16.14440;
  daa[15 * 20 + 0] = 337.07900;
  daa[15 * 20 + 1] = 122.41900;
  daa[15 * 20 + 2] = 397.42300;
  daa[15 * 20 + 3] = 107.17600;
  daa[15 * 20 + 4] = 140.76600;
  daa[15 * 20 + 5] = 102.88700;
  daa[15 * 20 + 6] = 70.49390;
  daa[15 * 20 + 7] = 134.18200;
  daa[15 * 20 + 8] = 74.01690;
  daa[15 * 20 + 9] = 31.94400;
  daa[15 * 20 + 10] = 34.47390;
  daa[15 * 20 + 11] = 96.71300;
  daa[15 * 20 + 12] = 49.39050;
  daa[15 * 20 + 13] = 54.59310;
  daa[15 * 20 + 14] = 161.32800;
  daa[16 * 20 + 0] = 212.11100;
  daa[16 * 20 + 1] = 55.44130;
  daa[16 * 20 + 2] = 203.00600;
  daa[16 * 20 + 3] = 37.48660;
  daa[16 * 20 + 4] = 51.29840;
  daa[16 * 20 + 5] = 85.79280;
  daa[16 * 20 + 6] = 82.27650;
  daa[16 * 20 + 7] = 22.58330;
  daa[16 * 20 + 8] = 47.33070;
  daa[16 * 20 + 9] = 145.81600;
  daa[16 * 20 + 10] = 32.66220;
  daa[16 * 20 + 11] = 138.69800;
  daa[16 * 20 + 12] = 151.61200;
  daa[16 * 20 + 13] = 17.19030;
  daa[16 * 20 + 14] = 79.53840;
  daa[16 * 20 + 15] = 437.80200;
  daa[17 * 20 + 0] = 11.31330;
  daa[17 * 20 + 1] = 116.39200;
  daa[17 * 20 + 2] = 7.19167;
  daa[17 * 20 + 3] = 12.97670;
  daa[17 * 20 + 4] = 71.70700;
  daa[17 * 20 + 5] = 21.57370;
  daa[17 * 20 + 6] = 15.65570;
  daa[17 * 20 + 7] = 33.69830;
  daa[17 * 20 + 8] = 26.25690;
  daa[17 * 20 + 9] = 21.24830;
  daa[17 * 20 + 10] = 66.53090;
  daa[17 * 20 + 11] = 13.75050;
  daa[17 * 20 + 12] = 51.57060;
  daa[17 * 20 + 13] = 152.96400;
  daa[17 * 20 + 14] = 13.94050;
  daa[17 * 20 + 15] = 52.37420;
  daa[17 * 20 + 16] = 11.08640;
  daa[18 * 20 + 0] = 24.07350;
  daa[18 * 20 + 1] = 38.15330;
  daa[18 * 20 + 2] = 108.60000;
  daa[18 * 20 + 3] = 32.57110;
  daa[18 * 20 + 4] = 54.38330;
  daa[18 * 20 + 5] = 22.77100;
  daa[18 * 20 + 6] = 19.63030;
  daa[18 * 20 + 7] = 10.36040;
  daa[18 * 20 + 8] = 387.34400;
  daa[18 * 20 + 9] = 42.01700;
  daa[18 * 20 + 10] = 39.86180;
  daa[18 * 20 + 11] = 13.32640;
  daa[18 * 20 + 12] = 42.84370;
  daa[18 * 20 + 13] = 645.42800;
  daa[18 * 20 + 14] = 21.60460;
  daa[18 * 20 + 15] = 78.69930;
  daa[18 * 20 + 16] = 29.11480;
  daa[18 * 20 + 17] = 248.53900;
  daa[19 * 20 + 0] = 200.60100;
  daa[19 * 20 + 1] = 25.18490;
  daa[19 * 20 + 2] = 19.62460;
  daa[19 * 20 + 3] = 15.23350;
  daa[19 * 20 + 4] = 100.21400;
  daa[19 * 20 + 5] = 30.12810;
  daa[19 * 20 + 6] = 58.87310;
  daa[19 * 20 + 7] = 18.72470;
  daa[19 * 20 + 8] = 11.83580;
  daa[19 * 20 + 9] = 782.13000;
  daa[19 * 20 + 10] = 180.03400;
  daa[19 * 20 + 11] = 30.54340;
  daa[19 * 20 + 12] = 205.84500;
  daa[19 * 20 + 13] = 64.98920;
  daa[19 * 20 + 14] = 31.48870;
  daa[19 * 20 + 15] = 23.27390;
  daa[19 * 20 + 16] = 138.82300;
  daa[19 * 20 + 17] = 36.53690;
  daa[19 * 20 + 18] = 31.47300;
  for (i = 0; i < 20; i++)
    for (j = 0; j < 20; j++)
      q[i][j] = 0.0;
  for (i = 0; i < 20; i++)
    for (j = 0; j < i; j++)
      daa[j * 20 + i] = daa[i * 20 + j];
  for (i = 0; i < 19; i++)
    for (j = i + 1; j < 20; j++)
      q[i][j] = daa[i * 20 + j];
  scaler = 1.0 / q[18][19];
  for (i = 0; i < 19; i++)
    for (j = i + 1; j < 20; j++)
      q[i][j] *= scaler;
  for (i = 0, r = 0; i < 19; i++)
    for (j = i + 1; j < 20; j++)
      ext_initialRates[r++] = q[i][j];
}


x86 assembly (clang, -O0):
<putWAG>:
push   %rbp
mov    %rsp,%rbp
sub    $0x18a0,%rsp
mov    %rdi,-0x8(%rbp)
movsd  0x24d1(%rip),%xmm0
movsd  %xmm0,-0x1870(%rbp)
ff
movsd  0x24b9(%rip),%xmm0
movsd  %xmm0,-0x17d0(%rbp)
ff
movsd  0x24a1(%rip),%xmm0
movsd  %xmm0,-0x17c8(%rbp)
ff
movsd  0x2489(%rip),%xmm0
movsd  %xmm0,-0x1730(%rbp)
ff
movsd  0x2471(%rip),%xmm0
movsd  %xmm0,-0x1728(%rbp)
ff
movsd  0x2459(%rip),%xmm0
movsd  %xmm0,-0x1720(%rbp)
ff
movsd  0x2441(%rip),%xmm0
movsd  %xmm0,-0x1690(%rbp)
ff
movsd  0x2429(%rip),%xmm0
movsd  %xmm0,-0x1688(%rbp)
ff
movsd  0x2411(%rip),%xmm0
movsd  %xmm0,-0x1680(%rbp)
ff
movsd  0x23f9(%rip),%xmm0
movsd  %xmm0,-0x1678(%rbp)
ff
movsd  0x23e1(%rip),%xmm0
movsd  %xmm0,-0x15f0(%rbp)
ff
movsd  0x23c9(%rip),%xmm0
movsd  %xmm0,-0x15e8(%rbp)
ff
movsd  0x23b1(%rip),%xmm0
movsd  %xmm0,-0x15e0(%rbp)
ff
movsd  0x2399(%rip),%xmm0
movsd  %xmm0,-0x15d8(%rbp)
ff
movsd  0x2381(%rip),%xmm0
movsd  %xmm0,-0x15d0(%rbp)
ff
movsd  0x2369(%rip),%xmm0
movsd  %xmm0,-0x1550(%rbp)
ff
movsd  0x2351(%rip),%xmm0
movsd  %xmm0,-0x1548(%rbp)
ff
movsd  0x2339(%rip),%xmm0
movsd  %xmm0,-0x1540(%rbp)
ff
movsd  0x2321(%rip),%xmm0
movsd  %xmm0,-0x1538(%rbp)
ff
movsd  0x2309(%rip),%xmm0
movsd  %xmm0,-0x1530(%rbp)
ff
movsd  0x22f1(%rip),%xmm0
movsd  %xmm0,-0x1528(%rbp)
ff
movsd  0x22d9(%rip),%xmm0
movsd  %xmm0,-0x14b0(%rbp)
ff
movsd  0x22c1(%rip),%xmm0
movsd  %xmm0,-0x14a8(%rbp)
ff
movsd  0x22a9(%rip),%xmm0
movsd  %xmm0,-0x14a0(%rbp)
ff
movsd  0x2291(%rip),%xmm0
movsd  %xmm0,-0x1498(%rbp)
ff
movsd  0x2279(%rip),%xmm0
movsd  %xmm0,-0x1490(%rbp)
ff
movsd  0x2261(%rip),%xmm0
movsd  %xmm0,-0x1488(%rbp)
ff
movsd  0x2249(%rip),%xmm0
movsd  %xmm0,-0x1480(%rbp)
ff
movsd  0x2231(%rip),%xmm0
movsd  %xmm0,-0x1410(%rbp)
ff
movsd  0x2219(%rip),%xmm0
movsd  %xmm0,-0x1408(%rbp)
ff
movsd  0x2201(%rip),%xmm0
movsd  %xmm0,-0x1400(%rbp)
ff
movsd  0x21e9(%rip),%xmm0
movsd  %xmm0,-0x13f8(%rbp)
ff
movsd  0x21d1(%rip),%xmm0
movsd  %xmm0,-0x13f0(%rbp)
ff
movsd  0x21b9(%rip),%xmm0
movsd  %xmm0,-0x13e8(%rbp)
ff
movsd  0x21a1(%rip),%xmm0
movsd  %xmm0,-0x13e0(%rbp)
ff
movsd  0x2189(%rip),%xmm0
movsd  %xmm0,-0x13d8(%rbp)
ff
movsd  0x2171(%rip),%xmm0
movsd  %xmm0,-0x1370(%rbp)
ff
movsd  0x2159(%rip),%xmm0
movsd  %xmm0,-0x1368(%rbp)
ff
movsd  0x2141(%rip),%xmm0
movsd  %xmm0,-0x1360(%rbp)
ff
movsd  0x2129(%rip),%xmm0
movsd  %xmm0,-0x1358(%rbp)
ff
movsd  0x2111(%rip),%xmm0
movsd  %xmm0,-0x1350(%rbp)
ff
movsd  0x20f9(%rip),%xmm0
movsd  %xmm0,-0x1348(%rbp)
ff
movsd  0x20e1(%rip),%xmm0
movsd  %xmm0,-0x1340(%rbp)
ff
movsd  0x20c9(%rip),%xmm0
movsd  %xmm0,-0x1338(%rbp)
ff
movsd  0x20b1(%rip),%xmm0
movsd  %xmm0,-0x1330(%rbp)
ff
movsd  0x2099(%rip),%xmm0
movsd  %xmm0,-0x12d0(%rbp)
ff
movsd  0x2081(%rip),%xmm0
movsd  %xmm0,-0x12c8(%rbp)
ff
movsd  0x2069(%rip),%xmm0
movsd  %xmm0,-0x12c0(%rbp)
ff
movsd  0x2051(%rip),%xmm0
movsd  %xmm0,-0x12b8(%rbp)
ff
movsd  0x2039(%rip),%xmm0
movsd  %xmm0,-0x12b0(%rbp)
ff
movsd  0x2021(%rip),%xmm0
movsd  %xmm0,-0x12a8(%rbp)
ff
movsd  0x2009(%rip),%xmm0
movsd  %xmm0,-0x12a0(%rbp)
ff
movsd  0x1ff1(%rip),%xmm0
movsd  %xmm0,-0x1298(%rbp)
ff
movsd  0x1fd9(%rip),%xmm0
movsd  %xmm0,-0x1290(%rbp)
ff
movsd  0x1fc1(%rip),%xmm0
movsd  %xmm0,-0x1288(%rbp)
ff
movsd  0x1fa9(%rip),%xmm0
movsd  %xmm0,-0x1230(%rbp)
ff
movsd  0x1f91(%rip),%xmm0
movsd  %xmm0,-0x1228(%rbp)
ff
movsd  0x1f79(%rip),%xmm0
movsd  %xmm0,-0x1220(%rbp)
ff
movsd  0x1f61(%rip),%xmm0
movsd  %xmm0,-0x1218(%rbp)
ff
movsd  0x1f49(%rip),%xmm0
movsd  %xmm0,-0x1210(%rbp)
ff
movsd  0x1f31(%rip),%xmm0
movsd  %xmm0,-0x1208(%rbp)
ff
movsd  0x1f19(%rip),%xmm0
movsd  %xmm0,-0x1200(%rbp)
ff
movsd  0x1f01(%rip),%xmm0
movsd  %xmm0,-0x11f8(%rbp)
ff
movsd  0x1ee9(%rip),%xmm0
movsd  %xmm0,-0x11f0(%rbp)
ff
movsd  0x1ed1(%rip),%xmm0
movsd  %xmm0,-0x11e8(%rbp)
ff
movsd  0x1eb9(%rip),%xmm0
movsd  %xmm0,-0x11e0(%rbp)
ff
movsd  0x1ea1(%rip),%xmm0
movsd  %xmm0,-0x1190(%rbp)
ff
movsd  0x1e89(%rip),%xmm0
movsd  %xmm0,-0x1188(%rbp)
ff
movsd  0x1e71(%rip),%xmm0
movsd  %xmm0,-0x1180(%rbp)
ff
movsd  0x1e59(%rip),%xmm0
movsd  %xmm0,-0x1178(%rbp)
ff
movsd  0x1e41(%rip),%xmm0
movsd  %xmm0,-0x1170(%rbp)
ff
movsd  0x1e29(%rip),%xmm0
movsd  %xmm0,-0x1168(%rbp)
ff
movsd  0x1e11(%rip),%xmm0
movsd  %xmm0,-0x1160(%rbp)
ff
movsd  0x1df9(%rip),%xmm0
movsd  %xmm0,-0x1158(%rbp)
ff
movsd  0x1de1(%rip),%xmm0
movsd  %xmm0,-0x1150(%rbp)
ff
movsd  0x1dc9(%rip),%xmm0
movsd  %xmm0,-0x1148(%rbp)
ff
movsd  0x1db1(%rip),%xmm0
movsd  %xmm0,-0x1140(%rbp)
ff
movsd  0x1d99(%rip),%xmm0
movsd  %xmm0,-0x1138(%rbp)
ff
movsd  0x1d81(%rip),%xmm0
movsd  %xmm0,-0x10f0(%rbp)
ff
movsd  0x1d69(%rip),%xmm0
movsd  %xmm0,-0x10e8(%rbp)
ff
movsd  0x1d51(%rip),%xmm0
movsd  %xmm0,-0x10e0(%rbp)
ff
movsd  0x1d39(%rip),%xmm0
movsd  %xmm0,-0x10d8(%rbp)
ff
movsd  0x1d21(%rip),%xmm0
movsd  %xmm0,-0x10d0(%rbp)
ff
movsd  0x1d09(%rip),%xmm0
movsd  %xmm0,-0x10c8(%rbp)
ff
movsd  0x1cf1(%rip),%xmm0
movsd  %xmm0,-0x10c0(%rbp)
ff
movsd  0x1cd9(%rip),%xmm0
movsd  %xmm0,-0x10b8(%rbp)
ff
movsd  0x1cc1(%rip),%xmm0
movsd  %xmm0,-0x10b0(%rbp)
ff
movsd  0x1ca9(%rip),%xmm0
movsd  %xmm0,-0x10a8(%rbp)
ff
movsd  0x1c91(%rip),%xmm0
movsd  %xmm0,-0x10a0(%rbp)
ff
movsd  0x1c79(%rip),%xmm0
movsd  %xmm0,-0x1098(%rbp)
ff
movsd  0x1c61(%rip),%xmm0
movsd  %xmm0,-0x1090(%rbp)
ff
movsd  0x1c49(%rip),%xmm0
movsd  %xmm0,-0x1050(%rbp)
ff
movsd  0x1c31(%rip),%xmm0
movsd  %xmm0,-0x1048(%rbp)
ff
movsd  0x1c19(%rip),%xmm0
movsd  %xmm0,-0x1040(%rbp)
ff
movsd  0x1c01(%rip),%xmm0
movsd  %xmm0,-0x1038(%rbp)
ff
movsd  0x1be9(%rip),%xmm0
movsd  %xmm0,-0x1030(%rbp)
ff
movsd  0x1bd1(%rip),%xmm0
movsd  %xmm0,-0x1028(%rbp)
ff
movsd  0x1bb9(%rip),%xmm0
movsd  %xmm0,-0x1020(%rbp)
ff
movsd  0x1ba1(%rip),%xmm0
movsd  %xmm0,-0x1018(%rbp)
ff
movsd  0x1b89(%rip),%xmm0
movsd  %xmm0,-0x1010(%rbp)
ff
movsd  0x1b71(%rip),%xmm0
movsd  %xmm0,-0x1008(%rbp)
ff
movsd  0x1b59(%rip),%xmm0
movsd  %xmm0,-0x1000(%rbp)
ff
movsd  0x1b41(%rip),%xmm0
movsd  %xmm0,-0xff8(%rbp)
ff
movsd  0x1b29(%rip),%xmm0
movsd  %xmm0,-0xff0(%rbp)
ff
movsd  0x1b11(%rip),%xmm0
movsd  %xmm0,-0xfe8(%rbp)
ff
movsd  0x1af9(%rip),%xmm0
movsd  %xmm0,-0xfb0(%rbp)
ff
movsd  0x1ae1(%rip),%xmm0
movsd  %xmm0,-0xfa8(%rbp)
ff
movsd  0x1ac9(%rip),%xmm0
movsd  %xmm0,-0xfa0(%rbp)
ff
movsd  0x1ab1(%rip),%xmm0
movsd  %xmm0,-0xf98(%rbp)
ff
movsd  0x1a99(%rip),%xmm0
movsd  %xmm0,-0xf90(%rbp)
ff
movsd  0x1a81(%rip),%xmm0
movsd  %xmm0,-0xf88(%rbp)
ff
movsd  0x1a69(%rip),%xmm0
movsd  %xmm0,-0xf80(%rbp)
ff
movsd  0x1a51(%rip),%xmm0
movsd  %xmm0,-0xf78(%rbp)
ff
movsd  0x1a39(%rip),%xmm0
movsd  %xmm0,-0xf70(%rbp)
ff
movsd  0x1a21(%rip),%xmm0
movsd  %xmm0,-0xf68(%rbp)
ff
movsd  0x1a09(%rip),%xmm0
movsd  %xmm0,-0xf60(%rbp)
ff
movsd  0x19f1(%rip),%xmm0
movsd  %xmm0,-0xf58(%rbp)
ff
movsd  0x19d9(%rip),%xmm0
movsd  %xmm0,-0xf50(%rbp)
ff
movsd  0x19c1(%rip),%xmm0
movsd  %xmm0,-0xf48(%rbp)
ff
movsd  0x19a9(%rip),%xmm0
movsd  %xmm0,-0xf40(%rbp)
ff
movsd  0x1991(%rip),%xmm0
movsd  %xmm0,-0xf10(%rbp)
ff
movsd  0x1979(%rip),%xmm0
movsd  %xmm0,-0xf08(%rbp)
ff
movsd  0x1961(%rip),%xmm0
movsd  %xmm0,-0xf00(%rbp)
ff
movsd  0x1949(%rip),%xmm0
movsd  %xmm0,-0xef8(%rbp)
ff
movsd  0x1931(%rip),%xmm0
movsd  %xmm0,-0xef0(%rbp)
ff
movsd  0x1919(%rip),%xmm0
movsd  %xmm0,-0xee8(%rbp)
ff
movsd  0x1901(%rip),%xmm0
movsd  %xmm0,-0xee0(%rbp)
ff
movsd  0x18e9(%rip),%xmm0
movsd  %xmm0,-0xed8(%rbp)
ff
movsd  0x18d1(%rip),%xmm0
movsd  %xmm0,-0xed0(%rbp)
ff
movsd  0x18b9(%rip),%xmm0
movsd  %xmm0,-0xec8(%rbp)
ff
movsd  0x18a1(%rip),%xmm0
movsd  %xmm0,-0xec0(%rbp)
ff
movsd  0x1889(%rip),%xmm0
movsd  %xmm0,-0xeb8(%rbp)
ff
movsd  0x1871(%rip),%xmm0
movsd  %xmm0,-0xeb0(%rbp)
ff
movsd  0x1859(%rip),%xmm0
movsd  %xmm0,-0xea8(%rbp)
ff
movsd  0x1841(%rip),%xmm0
movsd  %xmm0,-0xea0(%rbp)
ff
movsd  0x1829(%rip),%xmm0
movsd  %xmm0,-0xe98(%rbp)
ff
movsd  0x1811(%rip),%xmm0
movsd  %xmm0,-0xe70(%rbp)
ff
movsd  0x17f9(%rip),%xmm0
movsd  %xmm0,-0xe68(%rbp)
ff
movsd  0x17e1(%rip),%xmm0
movsd  %xmm0,-0xe60(%rbp)
ff
movsd  0x17c9(%rip),%xmm0
movsd  %xmm0,-0xe58(%rbp)
ff
movsd  0x17b1(%rip),%xmm0
movsd  %xmm0,-0xe50(%rbp)
ff
movsd  0x1799(%rip),%xmm0
movsd  %xmm0,-0xe48(%rbp)
ff
movsd  0x1781(%rip),%xmm0
movsd  %xmm0,-0xe40(%rbp)
ff
movsd  0x1769(%rip),%xmm0
movsd  %xmm0,-0xe38(%rbp)
ff
movsd  0x1751(%rip),%xmm0
movsd  %xmm0,-0xe30(%rbp)
ff
movsd  0x1739(%rip),%xmm0
movsd  %xmm0,-0xe28(%rbp)
ff
movsd  0x1721(%rip),%xmm0
movsd  %xmm0,-0xe20(%rbp)
ff
movsd  0x1709(%rip),%xmm0
movsd  %xmm0,-0xe18(%rbp)
ff
movsd  0x16f1(%rip),%xmm0
movsd  %xmm0,-0xe10(%rbp)
ff
movsd  0x16d9(%rip),%xmm0
movsd  %xmm0,-0xe08(%rbp)
ff
movsd  0x16c1(%rip),%xmm0
movsd  %xmm0,-0xe00(%rbp)
ff
movsd  0x16a9(%rip),%xmm0
movsd  %xmm0,-0xdf8(%rbp)
ff
movsd  0x1691(%rip),%xmm0
movsd  %xmm0,-0xdf0(%rbp)
ff
movsd  0x1679(%rip),%xmm0
movsd  %xmm0,-0xdd0(%rbp)
ff
movsd  0x1661(%rip),%xmm0
movsd  %xmm0,-0xdc8(%rbp)
ff
movsd  0x1649(%rip),%xmm0
movsd  %xmm0,-0xdc0(%rbp)
ff
movsd  0x1631(%rip),%xmm0
movsd  %xmm0,-0xdb8(%rbp)
ff
movsd  0x1619(%rip),%xmm0
movsd  %xmm0,-0xdb0(%rbp)
ff
movsd  0x1601(%rip),%xmm0
movsd  %xmm0,-0xda8(%rbp)
ff
movsd  0x15e9(%rip),%xmm0
movsd  %xmm0,-0xda0(%rbp)
ff
movsd  0x15d1(%rip),%xmm0
movsd  %xmm0,-0xd98(%rbp)
ff
movsd  0x15b9(%rip),%xmm0
movsd  %xmm0,-0xd90(%rbp)
ff
movsd  0x15a1(%rip),%xmm0
movsd  %xmm0,-0xd88(%rbp)
ff
movsd  0x1589(%rip),%xmm0
movsd  %xmm0,-0xd80(%rbp)
ff
movsd  0x1571(%rip),%xmm0
movsd  %xmm0,-0xd78(%rbp)
ff
movsd  0x1559(%rip),%xmm0
movsd  %xmm0,-0xd70(%rbp)
ff
movsd  0x1541(%rip),%xmm0
movsd  %xmm0,-0xd68(%rbp)
ff
movsd  0x1529(%rip),%xmm0
movsd  %xmm0,-0xd60(%rbp)
ff
movsd  0x1511(%rip),%xmm0
movsd  %xmm0,-0xd58(%rbp)
ff
movsd  0x14f9(%rip),%xmm0
movsd  %xmm0,-0xd50(%rbp)
ff
movsd  0x14e1(%rip),%xmm0
movsd  %xmm0,-0xd48(%rbp)
ff
movsd  0x14c9(%rip),%xmm0
movsd  %xmm0,-0xd30(%rbp)
ff
movsd  0x14b1(%rip),%xmm0
movsd  %xmm0,-0xd28(%rbp)
ff
movsd  0x1499(%rip),%xmm0
movsd  %xmm0,-0xd20(%rbp)
ff
movsd  0x1481(%rip),%xmm0
movsd  %xmm0,-0xd18(%rbp)
ff
movsd  0x1469(%rip),%xmm0
movsd  %xmm0,-0xd10(%rbp)
ff
movsd  0x1451(%rip),%xmm0
movsd  %xmm0,-0xd08(%rbp)
ff
movsd  0x1439(%rip),%xmm0
movsd  %xmm0,-0xd00(%rbp)
ff
movsd  0x1421(%rip),%xmm0
movsd  %xmm0,-0xcf8(%rbp)
ff
movsd  0x1409(%rip),%xmm0
movsd  %xmm0,-0xcf0(%rbp)
ff
movsd  0x13f1(%rip),%xmm0
movsd  %xmm0,-0xce8(%rbp)
ff
movsd  0x13d9(%rip),%xmm0
movsd  %xmm0,-0xce0(%rbp)
ff
movsd  0x13c1(%rip),%xmm0
movsd  %xmm0,-0xcd8(%rbp)
ff
movsd  0x13a9(%rip),%xmm0
movsd  %xmm0,-0xcd0(%rbp)
ff
movsd  0x1391(%rip),%xmm0
movsd  %xmm0,-0xcc8(%rbp)
ff
movsd  0x1379(%rip),%xmm0
movsd  %xmm0,-0xcc0(%rbp)
ff
movsd  0x1361(%rip),%xmm0
movsd  %xmm0,-0xcb8(%rbp)
ff
movsd  0x1349(%rip),%xmm0
movsd  %xmm0,-0xcb0(%rbp)
ff
movsd  0x1331(%rip),%xmm0
movsd  %xmm0,-0xca8(%rbp)
ff
movsd  0x1319(%rip),%xmm0
movsd  %xmm0,-0xca0(%rbp)
ff
movl   $0x0,-0x1914(%rbp)
cmpl   $0x14,-0x1914(%rbp)
jge    1d71 <putWAG+0xc71>
movl   $0x0,-0x1918(%rbp)
cmpl   $0x14,-0x1918(%rbp)
jge    1d58 <putWAG+0xc58>
movslq -0x1914(%rbp),%rcx
lea    -0xc90(%rbp),%rax
imul   $0xa0,%rcx,%rcx
add    %rcx,%rax
movslq -0x1918(%rbp),%rcx
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1918(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1918(%rbp)
jmp    1d10 <putWAG+0xc10>
jmp    1d5d <putWAG+0xc5d>
mov    -0x1914(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1914(%rbp)
jmp    1cf9 <putWAG+0xbf9>
movl   $0x0,-0x1914(%rbp)
cmpl   $0x14,-0x1914(%rbp)
jge    1e01 <putWAG+0xd01>
movl   $0x0,-0x1918(%rbp)
mov    -0x1918(%rbp),%eax
cmp    -0x1914(%rbp),%eax
jge    1de8 <putWAG+0xce8>
imul   $0x14,-0x1914(%rbp),%eax
add    -0x1918(%rbp),%eax
cltq
movsd  -0x1910(%rbp,%rax,8),%xmm0
ff ff
imul   $0x14,-0x1918(%rbp),%eax
add    -0x1914(%rbp),%eax
cltq
movsd  %xmm0,-0x1910(%rbp,%rax,8)
ff ff
mov    -0x1918(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1918(%rbp)
jmp    1d92 <putWAG+0xc92>
jmp    1ded <putWAG+0xced>
mov    -0x1914(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1914(%rbp)
jmp    1d7b <putWAG+0xc7b>
movl   $0x0,-0x1914(%rbp)
cmpl   $0x13,-0x1914(%rbp)
jge    1e9d <putWAG+0xd9d>
mov    -0x1914(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1918(%rbp)
cmpl   $0x14,-0x1918(%rbp)
jge    1e84 <putWAG+0xd84>
imul   $0x14,-0x1914(%rbp),%eax
add    -0x1918(%rbp),%eax
cltq
movsd  -0x1910(%rbp,%rax,8),%xmm0
ff ff
movslq -0x1914(%rbp),%rcx
lea    -0xc90(%rbp),%rax
imul   $0xa0,%rcx,%rcx
add    %rcx,%rax
movslq -0x1918(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1918(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1918(%rbp)
jmp    1e27 <putWAG+0xd27>
jmp    1e89 <putWAG+0xd89>
mov    -0x1914(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1914(%rbp)
jmp    1e0b <putWAG+0xd0b>
movsd  0x174b(%rip),%xmm0
divsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0x10(%rbp)
movl   $0x0,-0x1914(%rbp)
cmpl   $0x13,-0x1914(%rbp)
jge    1f40 <putWAG+0xe40>
mov    -0x1914(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1918(%rbp)
cmpl   $0x14,-0x1918(%rbp)
jge    1f27 <putWAG+0xe27>
movsd  -0x10(%rbp),%xmm0
movslq -0x1914(%rbp),%rcx
lea    -0xc90(%rbp),%rax
imul   $0xa0,%rcx,%rcx
add    %rcx,%rax
movslq -0x1918(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1918(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1918(%rbp)
jmp    1ed8 <putWAG+0xdd8>
jmp    1f2c <putWAG+0xe2c>
mov    -0x1914(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1914(%rbp)
jmp    1ebc <putWAG+0xdbc>
movl   $0x0,-0x1914(%rbp)
movl   $0x0,-0x191c(%rbp)
cmpl   $0x13,-0x1914(%rbp)
jge    1feb <putWAG+0xeeb>
mov    -0x1914(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1918(%rbp)
cmpl   $0x14,-0x1918(%rbp)
jge    1fd2 <putWAG+0xed2>
movslq -0x1914(%rbp),%rcx
lea    -0xc90(%rbp),%rax
imul   $0xa0,%rcx,%rcx
add    %rcx,%rax
movslq -0x1918(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x8(%rbp),%rax
mov    -0x191c(%rbp),%ecx
mov    %ecx,%edx
add    $0x1,%edx
mov    %edx,-0x191c(%rbp)
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1918(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1918(%rbp)
jmp    1f70 <putWAG+0xe70>
jmp    1fd7 <putWAG+0xed7>
mov    -0x1914(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1914(%rbp)
jmp    1f54 <putWAG+0xe54>
add    $0x18a0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<putWAG>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x1918,%rsp
mov    %rdi,0x8(%rsp)
movabs $0x404b941bda5119ce,%rax
94 4b 40
mov    %rax,0xb0(%rsp)
movaps 0xeb1(%rip),%xmm0
movaps %xmm0,0x150(%rsp)
movaps 0xeb2(%rip),%xmm0
movaps %xmm0,0x1f0(%rsp)
movabs $0x4080f789374bc6a8,%rax
f7 80 40
mov    %rax,0x200(%rsp)
movaps 0xea1(%rip),%xmm0
movaps %xmm0,0x290(%rsp)
movaps 0xea2(%rip),%xmm0
movaps %xmm0,0x2a0(%rsp)
movaps 0xea3(%rip),%xmm0
movaps %xmm0,0x330(%rsp)
movaps 0xea4(%rip),%xmm0
movaps %xmm0,0x340(%rsp)
movabs $0x4023c379fa97e133,%rax
c3 23 40
mov    %rax,0x350(%rsp)
movaps 0xe93(%rip),%xmm0
movaps %xmm0,0x3d0(%rsp)
movaps 0xe94(%rip),%xmm0
movaps %xmm0,0x3e0(%rsp)
movaps 0xe95(%rip),%xmm0
movaps %xmm0,0x3f0(%rsp)
movaps 0xe96(%rip),%xmm0
movaps %xmm0,0x470(%rsp)
movaps 0xe97(%rip),%xmm0
movaps %xmm0,0x480(%rsp)
movaps 0xe98(%rip),%xmm0
movaps %xmm0,0x490(%rsp)
movabs $0x404c62c710cb295f,%rax
62 4c 40
mov    %rax,0x4a0(%rsp)
movaps 0xe87(%rip),%xmm0
movaps %xmm0,0x510(%rsp)
movaps 0xe88(%rip),%xmm0
movaps %xmm0,0x520(%rsp)
movaps 0xe89(%rip),%xmm0
movaps %xmm0,0x530(%rsp)
movaps 0xe8a(%rip),%xmm0
movaps %xmm0,0x540(%rsp)
movaps 0xe8b(%rip),%xmm0
movaps %xmm0,0x5b0(%rsp)
movaps 0xe8c(%rip),%xmm0
movaps %xmm0,0x5c0(%rsp)
movaps 0xe8d(%rip),%xmm0
movaps %xmm0,0x5d0(%rsp)
movaps 0xe8e(%rip),%xmm0
movaps %xmm0,0x5e0(%rsp)
movabs $0x402ba353f7ced917,%rax
a3 2b 40
mov    %rax,0x5f0(%rsp)
movaps 0xe7d(%rip),%xmm0
movaps %xmm0,0x650(%rsp)
movaps 0xe7e(%rip),%xmm0
movaps %xmm0,0x660(%rsp)
movaps 0xe7f(%rip),%xmm0
movaps %xmm0,0x670(%rsp)
movaps 0xe80(%rip),%xmm0
movaps %xmm0,0x680(%rsp)
movaps 0xe81(%rip),%xmm0
movaps %xmm0,0x690(%rsp)
movaps 0xe82(%rip),%xmm0
movaps %xmm0,0x6f0(%rsp)
movaps 0xe83(%rip),%xmm0
movaps %xmm0,0x700(%rsp)
movaps 0xe84(%rip),%xmm0
movaps %xmm0,0x710(%rsp)
movaps 0xe85(%rip),%xmm0
movaps %xmm0,0x720(%rsp)
movaps 0xe86(%rip),%xmm0
movaps %xmm0,0x730(%rsp)
movabs $0x4039c16872b020c5,%rax
c1 39 40
mov    %rax,0x740(%rsp)
movaps 0xe75(%rip),%xmm0
movaps %xmm0,0x790(%rsp)
movaps 0xe76(%rip),%xmm0
movaps %xmm0,0x7a0(%rsp)
movaps 0xe77(%rip),%xmm0
movaps %xmm0,0x7b0(%rsp)
movaps 0xe78(%rip),%xmm0
movaps %xmm0,0x7c0(%rsp)
movaps 0xe79(%rip),%xmm0
movaps %xmm0,0x7d0(%rsp)
movaps 0xe7a(%rip),%xmm0
movaps %xmm0,0x7e0(%rsp)
movaps 0xe7b(%rip),%xmm0
movaps %xmm0,0x830(%rsp)
movaps 0xe7c(%rip),%xmm0
movaps %xmm0,0x840(%rsp)
movaps 0xe7d(%rip),%xmm0
movaps %xmm0,0x850(%rsp)
movaps 0xe7e(%rip),%xmm0
movaps %xmm0,0x860(%rsp)
movaps 0xe7f(%rip),%xmm0
movaps %xmm0,0x870(%rsp)
movaps 0xe80(%rip),%xmm0
movaps %xmm0,0x880(%rsp)
movabs $0x405dc4083126e979,%rax
c4 5d 40
mov    %rax,0x890(%rsp)
movaps 0xe6f(%rip),%xmm0
movaps %xmm0,0x8d0(%rsp)
movaps 0xe70(%rip),%xmm0
movaps %xmm0,0x8e0(%rsp)
movaps 0xe71(%rip),%xmm0
movaps %xmm0,0x8f0(%rsp)
movaps 0xe72(%rip),%xmm0
movaps %xmm0,0x900(%rsp)
movaps 0xe73(%rip),%xmm0
movaps %xmm0,0x910(%rsp)
movaps 0xe74(%rip),%xmm0
movaps %xmm0,0x920(%rsp)
movaps 0xe75(%rip),%xmm0
movaps %xmm0,0x930(%rsp)
movaps 0xe76(%rip),%xmm0
movaps %xmm0,0x970(%rsp)
movaps 0xe77(%rip),%xmm0
movaps %xmm0,0x980(%rsp)
movaps 0xe78(%rip),%xmm0
movaps %xmm0,0x990(%rsp)
movaps 0xe79(%rip),%xmm0
movaps %xmm0,0x9a0(%rsp)
movaps 0xe7a(%rip),%xmm0
movaps %xmm0,0x9b0(%rsp)
movaps 0xe7b(%rip),%xmm0
movaps %xmm0,0x9c0(%rsp)
movaps 0xe7c(%rip),%xmm0
movaps %xmm0,0x9d0(%rsp)
movabs $0x40642a7ef9db22d1,%rax
2a 64 40
mov    %rax,0x9e0(%rsp)
movaps 0xe6b(%rip),%xmm0
movaps %xmm0,0xa10(%rsp)
movaps 0xe6c(%rip),%xmm0
movaps %xmm0,0xa20(%rsp)
movaps 0xe6d(%rip),%xmm0
movaps %xmm0,0xa30(%rsp)
movaps 0xe6e(%rip),%xmm0
movaps %xmm0,0xa40(%rsp)
movaps 0xe6f(%rip),%xmm0
movaps %xmm0,0xa50(%rsp)
movaps 0xe70(%rip),%xmm0
movaps %xmm0,0xa60(%rsp)
movaps 0xe71(%rip),%xmm0
movaps %xmm0,0xa70(%rsp)
movaps 0xe72(%rip),%xmm0
movaps %xmm0,0xa80(%rsp)
movaps 0xe73(%rip),%xmm0
movaps %xmm0,0xab0(%rsp)
movaps 0xe74(%rip),%xmm0
movaps %xmm0,0xac0(%rsp)
movaps 0xe75(%rip),%xmm0
movaps %xmm0,0xad0(%rsp)
movaps 0xe76(%rip),%xmm0
movaps %xmm0,0xae0(%rsp)
movaps 0xe77(%rip),%xmm0
movaps %xmm0,0xaf0(%rsp)
movaps 0xe78(%rip),%xmm0
movaps %xmm0,0xb00(%rsp)
movaps 0xe79(%rip),%xmm0
movaps %xmm0,0xb10(%rsp)
movaps 0xe7a(%rip),%xmm0
movaps %xmm0,0xb20(%rsp)
movabs $0x40262c3c9eecbfb1,%rax
2c 26 40
mov    %rax,0xb30(%rsp)
movaps 0xe69(%rip),%xmm0
movaps %xmm0,0xb50(%rsp)
movaps 0xe6a(%rip),%xmm0
movaps %xmm0,0xb60(%rsp)
movaps 0xe6b(%rip),%xmm0
movaps %xmm0,0xb70(%rsp)
movaps 0xe6c(%rip),%xmm0
movaps %xmm0,0xb80(%rsp)
movaps 0xe6d(%rip),%xmm0
movaps %xmm0,0xb90(%rsp)
movaps 0xe6e(%rip),%xmm0
movaps %xmm0,0xba0(%rsp)
movaps 0xe6f(%rip),%xmm0
movaps %xmm0,0xbb0(%rsp)
movaps 0xe70(%rip),%xmm0
movaps %xmm0,0xbc0(%rsp)
movaps 0xe71(%rip),%xmm0
movaps %xmm0,0xbd0(%rsp)
movaps 0xe72(%rip),%xmm0
movaps %xmm0,0xbf0(%rsp)
movaps 0xe73(%rip),%xmm0
movaps %xmm0,0xc00(%rsp)
movaps 0xe74(%rip),%xmm0
movaps %xmm0,0xc10(%rsp)
movaps 0xe75(%rip),%xmm0
movaps %xmm0,0xc20(%rsp)
movaps 0xe76(%rip),%xmm0
movaps %xmm0,0xc30(%rsp)
movaps 0xe77(%rip),%xmm0
movaps %xmm0,0xc40(%rsp)
movaps 0xe78(%rip),%xmm0
movaps %xmm0,0xc50(%rsp)
movaps 0xe79(%rip),%xmm0
movaps %xmm0,0xc60(%rsp)
movaps 0xe7a(%rip),%xmm0
movaps %xmm0,0xc70(%rsp)
movabs $0x403f7916872b020c,%rax
79 3f 40
mov    %rax,0xc80(%rsp)
lea    0xc90(%rsp),%rbx
xor    %ebp,%ebp
mov    $0xc80,%edx
mov    %rbx,%rdi
xor    %esi,%esi
call   1030 <memset@plt>
lea    0x18(%rsp),%rax
lea    0x10(%rsp),%rcx
jmp    1778 <putWAG+0x658>
cs nopw 0x0(%rax,%rax,1)
nop
add    $0x1,%rbp
add    $0xa0,%rax
add    $0x8,%rcx
cmp    $0x14,%rbp
je     17fc <putWAG+0x6dc>
test   %rbp,%rbp
je     1760 <putWAG+0x640>
cmp    $0x1,%rbp
jne    1790 <putWAG+0x670>
xor    %edx,%edx
jmp    17c7 <putWAG+0x6a7>
nopw   0x0(%rax,%rax,1)
mov    %rbp,%rsi
and    $0xfffffffffffffffe,%rsi
mov    %rcx,%rdi
xor    %edx,%edx
nopl   0x0(%rax)
movsd  -0x8(%rax,%rdx,8),%xmm0
movsd  %xmm0,(%rdi)
movsd  (%rax,%rdx,8),%xmm0
movsd  %xmm0,0xa0(%rdi)
add    $0x2,%rdx
add    $0x140,%rdi
cmp    %rdx,%rsi
jne    17a0 <putWAG+0x680>
test   $0x1,%bpl
je     1760 <putWAG+0x640>
lea    0x0(,%rbp,4),%rsi
lea    (%rsi,%rsi,4),%rsi
add    %rdx,%rsi
movsd  0x10(%rsp,%rsi,8),%xmm0
lea    (%rdx,%rdx,4),%rdx
lea    0x0(,%rdx,4),%rdx
add    %rbp,%rdx
movsd  %xmm0,0x10(%rsp,%rdx,8)
jmp    1760 <putWAG+0x640>
mov    $0x90,%r15d
mov    $0x8,%ebp
nopw   0x0(%rax,%rax,1)
lea    0x8(%r15),%rdx
lea    (%rsp,%rbp,1),%rsi
add    $0x10,%rsi
lea    (%rsp,%rbp,1),%rdi
add    $0xc90,%rdi
call   1040 <memcpy@plt>
test   %r15,%r15
je     185c <putWAG+0x73c>
lea    (%rsp,%rbp,1),%rsi
add    $0xb8,%rsi
lea    (%rsp,%rbp,1),%rdi
add    $0xd38,%rdi
mov    %r15,%rdx
call   1040 <memcpy@plt>
add    $0xfffffffffffffff0,%r15
add    $0x150,%rbp
jmp    1810 <putWAG+0x6f0>
movsd  0xd4c(%rip),%xmm0
divsd  0x1868(%rsp),%xmm0
movapd %xmm0,%xmm1
unpcklpd %xmm0,%xmm1
lea    0xcc8(%rsp),%rax
lea    0xc98(%rsp),%r10
mov    $0x1,%r14d
mov    $0x11,%r11d
xor    %r8d,%r8d
jmp    18c6 <putWAG+0x7a6>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%r14
add    $0xa8,%rax
add    $0xffffffffffffffff,%r11
add    $0xa8,%r10
add    $0xa0,%rbx
cmp    $0x13,%r8
je     19dd <putWAG+0x8bd>
mov    %r8,%rcx
mov    $0x13,%ebp
sub    %r8,%rbp
add    $0x1,%r8
mov    %r14,%rdx
cmp    $0x2,%rbp
jb     19c0 <putWAG+0x8a0>
mov    %r11,%r9
shr    %r9
mov    $0x11,%edx
sub    %rcx,%rdx
mov    %rdx,%rsi
shr    %rsi
add    $0x1,%rsi
cmp    $0x6,%rdx
jae    1910 <putWAG+0x7f0>
xor    %ecx,%ecx
jmp    1968 <putWAG+0x848>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
lea    0x1(%r9),%rdx
and    $0xfffffffffffffffc,%rdx
xor    %ecx,%ecx
nopw   0x0(%rax,%rax,1)
movupd -0x30(%rax,%rcx,8),%xmm2
movupd -0x20(%rax,%rcx,8),%xmm3
movupd -0x10(%rax,%rcx,8),%xmm4
movupd (%rax,%rcx,8),%xmm5
mulpd  %xmm1,%xmm2
movupd %xmm2,-0x30(%rax,%rcx,8)
mulpd  %xmm1,%xmm3
movupd %xmm3,-0x20(%rax,%rcx,8)
mulpd  %xmm1,%xmm4
movupd %xmm4,-0x10(%rax,%rcx,8)
mulpd  %xmm1,%xmm5
movupd %xmm5,(%rax,%rcx,8)
add    $0x8,%rcx
add    $0xfffffffffffffffc,%rdx
jne    1920 <putWAG+0x800>
mov    %rbp,%rdx
and    $0xfffffffffffffffe,%rdx
test   $0x3,%sil
je     19a7 <putWAG+0x887>
add    $0x1,%r9b
movzbl %r9b,%esi
and    $0x3,%esi
shl    $0x4,%rsi
lea    (%r10,%rcx,8),%rcx
xor    %edi,%edi
nopw   0x0(%rax,%rax,1)
movupd (%rcx,%rdi,1),%xmm2
mulpd  %xmm1,%xmm2
movupd %xmm2,(%rcx,%rdi,1)
add    $0x10,%rdi
cmp    %rdi,%rsi
jne    1990 <putWAG+0x870>
cmp    %rdx,%rbp
je     18a0 <putWAG+0x780>
add    %r14,%rdx
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movsd  (%rbx,%rdx,8),%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,(%rbx,%rdx,8)
add    $0x1,%rdx
cmp    $0x14,%rdx
jne    19c0 <putWAG+0x8a0>
jmp    18a0 <putWAG+0x780>
mov    $0x1,%ebx
mov    $0x11,%r15d
xor    %r12d,%r12d
xor    %r14d,%r14d
jmp    1a02 <putWAG+0x8e2>
add    $0x1,%rbx
add    $0xffffffffffffffff,%r15
cmp    $0x13,%r12
je     1b11 <putWAG+0x9f1>
mov    %r12,%r13
mov    $0x13,%ebp
sub    %r12,%rbp
add    $0x1,%r12
lea    0x0(,%r13,8),%rax
mov    $0x98,%edx
sub    %rax,%rdx
imul   $0xa8,%r13,%rax
lea    0xc90(%rsp),%rcx
lea    (%rax,%rcx,1),%rsi
add    $0x8,%rsi
movslq %r14d,%r14
mov    0x8(%rsp),%rax
lea    (%rax,%r14,8),%rdi
call   1040 <memcpy@plt>
cmp    $0x2,%rbp
jae    1a60 <putWAG+0x940>
mov    %rbx,%rax
jmp    1af4 <putWAG+0x9d4>
nopw   0x0(%rax,%rax,1)
mov    %r15,%rcx
shr    %rcx
mov    $0x11,%eax
sub    %r13,%rax
mov    %rax,%rdx
shr    %rdx
add    $0x1,%rdx
movq   %r14,%xmm0
cmp    $0xe,%rax
jae    1a90 <putWAG+0x970>
pcmpeqd %xmm1,%xmm1
jmp    1aba <putWAG+0x99a>
nopl   0x0(%rax)
lea    0x1(%rcx),%rax
and    $0xfffffffffffffff8,%rax
pcmpeqd %xmm1,%xmm1
movdqa 0xafc(%rip),%xmm2
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
paddq  %xmm2,%xmm0
add    $0xfffffffffffffff8,%rax
jne    1ab0 <putWAG+0x990>
mov    %rbp,%rax
and    $0xfffffffffffffffe,%rax
test   $0x7,%dl
je     1ada <putWAG+0x9ba>
add    $0x1,%cl
movzbl %cl,%ecx
and    $0x7,%ecx
nop
psubq  %xmm1,%xmm0
add    $0xffffffffffffffff,%rcx
jne    1ad0 <putWAG+0x9b0>
pshufd $0xee,%xmm0,%xmm1
paddq  %xmm0,%xmm1
movq   %xmm1,%r14
cmp    %rax,%rbp
je     19f0 <putWAG+0x8d0>
add    %rbx,%rax
add    $0xffffffffffffffec,%rax
xor    %ecx,%ecx
nopw   0x0(%rax,%rax,1)
add    $0xffffffffffffffff,%rcx
cmp    %rcx,%rax
jne    1b00 <putWAG+0x9e0>
sub    %rcx,%r14
jmp    19f0 <putWAG+0x8d0>
add    $0x1918,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @putWAG(double* %0) {
%2 = alloca double*
%3 = alloca double
%4 = alloca [20 x [20 x double]]
%5 = alloca [400 x double]
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
store double* %0, double** %2
%9 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 20
store double 5.515710e+01, double* %9
%10 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 40
store double 5.098480e+01, double* %10
%11 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 41
store double 6.353460e+01, double* %11
%12 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 60
store double 7.389980e+01, double* %12
%13 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 61
store double 1.473040e+01, double* %13
%14 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 62
store double 5.429420e+02, double* %14
%15 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 80
store double 1.027040e+02, double* %15
%16 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 81
store double 5.281910e+01, double* %16
%17 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 82
store double 2.652560e+01, double* %17
%18 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 83
store double 3.029490e+00, double* %18
%19 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 100
store double 9.085980e+01, double* %19
%20 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 101
store double 3.035500e+02, double* %20
%21 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 102
store double 1.543640e+02, double* %21
%22 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 103
store double 6.167830e+01, double* %22
%23 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 104
store double 9.881790e+00, double* %23
%24 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 120
store double 1.582850e+02, double* %24
%25 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 121
store double 4.391570e+01, double* %25
%26 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 122
store double 9.471980e+01, double* %26
%27 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 123
store double 6.174160e+02, double* %27
%28 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 124
store double 2.135200e+00, double* %28
%29 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 125
store double 5.469470e+02, double* %29
%30 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 140
store double 1.416720e+02, double* %30
%31 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 141
store double 5.846650e+01, double* %31
%32 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 142
store double 1.125560e+02, double* %32
%33 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 143
store double 8.655840e+01, double* %33
%34 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 144
store double 3.066740e+01, double* %34
%35 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 145
store double 3.300520e+01, double* %35
%36 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 146
store double 5.677170e+01, double* %36
%37 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 160
store double 3.169540e+01, double* %37
%38 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 161
store double 2.137150e+02, double* %38
%39 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 162
store double 3.956290e+02, double* %39
%40 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 163
store double 0x405744538EF34D6A, double* %40
%41 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 164
store double 2.489720e+01, double* %41
%42 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 165
store double 4.294110e+02, double* %42
%43 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 166
store double 5.700250e+01, double* %43
%44 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 167
store double 2.494100e+01, double* %44
%45 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 180
store double 1.933350e+01, double* %45
%46 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 181
store double 1.869790e+01, double* %46
%47 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 182
store double 5.542360e+01, double* %47
%48 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 183
store double 3.943700e+00, double* %48
%49 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 184
store double 1.701350e+01, double* %49
%50 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 185
store double 1.139170e+01, double* %50
%51 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 186
store double 1.273950e+01, double* %51
%52 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 187
store double 3.045010e+00, double* %52
%53 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 188
store double 1.381900e+01, double* %53
%54 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 200
store double 3.979150e+01, double* %54
%55 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 201
store double 4.976710e+01, double* %55
%56 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 202
store double 1.315280e+01, double* %56
%57 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 203
store double 8.480470e+00, double* %57
%58 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 204
store double 3.842870e+01, double* %58
%59 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 205
store double 0x4055BCBAC710CB29, double* %59
%60 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 206
store double 1.542630e+01, double* %60
%61 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 207
store double 6.130370e+00, double* %61
%62 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 208
store double 4.994620e+01, double* %62
%63 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 209
store double 3.170970e+02, double* %63
%64 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 220
store double 9.062650e+01, double* %64
%65 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 221
store double 5.351420e+02, double* %65
%66 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 222
store double 3.012010e+02, double* %66
%67 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 223
store double 4.798550e+01, double* %67
%68 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 224
store double 7.403390e+00, double* %68
%69 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 225
store double 3.894900e+02, double* %69
%70 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 226
store double 2.584430e+02, double* %70
%71 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 227
store double 3.735580e+01, double* %71
%72 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 228
store double 0x405642C3C9EECBFB, double* %72
%73 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 229
store double 3.238320e+01, double* %73
%74 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 230
store double 2.575550e+01, double* %74
%75 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 240
store double 0x4056565FD8ADAB9F, double* %75
%76 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 241
store double 6.831620e+01, double* %76
%77 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 242
store double 1.982210e+01, double* %77
%78 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 243
store double 1.037540e+01, double* %78
%79 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 244
store double 3.904820e+01, double* %79
%80 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 245
store double 1.545260e+02, double* %80
%81 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 246
store double 3.151240e+01, double* %81
%82 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 247
store double 1.741000e+01, double* %82
%83 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 248
store double 4.041410e+01, double* %83
%84 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 249
store double 4.257460e+02, double* %84
%85 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 250
store double 4.854020e+02, double* %85
%86 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 251
store double 0x40575B5DCC63F141, double* %86
%87 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 260
store double 2.104940e+01, double* %87
%88 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 261
store double 1.027110e+01, double* %88
%89 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 262
store double 9.616210e+00, double* %89
%90 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 263
store double 4.673040e+00, double* %90
%91 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 264
store double 3.980200e+01, double* %91
%92 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 265
store double 0x4023FBF1E8E60807, double* %92
%93 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 266
store double 8.113390e+00, double* %93
%94 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 267
store double 4.993100e+00, double* %94
%95 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 268
store double 6.793710e+01, double* %95
%96 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 269
store double 1.059470e+02, double* %96
%97 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 270
store double 2.115170e+02, double* %97
%98 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 271
store double 8.883600e+00, double* %98
%99 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 272
store double 1.190630e+02, double* %99
%100 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 280
store double 1.438550e+02, double* %100
%101 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 281
store double 6.794890e+01, double* %101
%102 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 282
store double 1.950810e+01, double* %102
%103 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 283
store double 4.239840e+01, double* %103
%104 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 284
store double 1.094040e+01, double* %104
%105 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 285
store double 0x40575594AF4F0D84, double* %105
%106 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 286
store double 6.823550e+01, double* %106
%107 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 287
store double 2.435700e+01, double* %107
%108 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 288
store double 0x405167AACD9E83E4, double* %108
%109 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 289
store double 0x4023FC5AC471B478, double* %109
%110 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 290
store double 4.158440e+01, double* %110
%111 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 291
store double 5.568960e+01, double* %111
%112 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 292
store double 1.713290e+01, double* %112
%113 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 293
store double 1.614440e+01, double* %113
%114 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 300
store double 3.370790e+02, double* %114
%115 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 301
store double 1.224190e+02, double* %115
%116 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 302
store double 3.974230e+02, double* %116
%117 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 303
store double 1.071760e+02, double* %117
%118 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 304
store double 1.407660e+02, double* %118
%119 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 305
store double 1.028870e+02, double* %119
%120 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 306
store double 0x40519F9C0EBEDFA4, double* %120
%121 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 307
store double 1.341820e+02, double* %121
%122 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 308
store double 7.401690e+01, double* %122
%123 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 309
store double 3.194400e+01, double* %123
%124 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 310
store double 3.447390e+01, double* %124
%125 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 311
store double 0x40582DA1CAC08312, double* %125
%126 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 312
store double 4.939050e+01, double* %126
%127 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 313
store double 5.459310e+01, double* %127
%128 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 314
store double 1.613280e+02, double* %128
%129 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 320
store double 2.121110e+02, double* %129
%130 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 321
store double 5.544130e+01, double* %130
%131 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 322
store double 2.030060e+02, double* %131
%132 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 323
store double 3.748660e+01, double* %132
%133 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 324
store double 5.129840e+01, double* %133
%134 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 325
store double 0x405572BD3C361134, double* %134
%135 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 326
store double 0x405491B22D0E5604, double* %135
%136 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 327
store double 2.258330e+01, double* %136
%137 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 328
store double 4.733070e+01, double* %137
%138 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 329
store double 1.458160e+02, double* %138
%139 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 330
store double 3.266220e+01, double* %139
%140 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 331
store double 1.386980e+02, double* %140
%141 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 332
store double 1.516120e+02, double* %141
%142 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 333
store double 1.719030e+01, double* %142
%143 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 334
store double 7.953840e+01, double* %143
%144 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 335
store double 4.378020e+02, double* %144
%145 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 340
store double 1.131330e+01, double* %145
%146 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 341
store double 1.163920e+02, double* %146
%147 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 342
store double 7.191670e+00, double* %147
%148 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 343
store double 1.297670e+01, double* %148
%149 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 344
store double 0x4051ED3F7CED9168, double* %149
%150 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 345
store double 2.157370e+01, double* %150
%151 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 346
store double 1.565570e+01, double* %151
%152 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 347
store double 3.369830e+01, double* %152
%153 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 348
store double 2.625690e+01, double* %153
%154 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 349
store double 2.124830e+01, double* %154
%155 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 350
store double 6.653090e+01, double* %155
%156 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 351
store double 1.375050e+01, double* %156
%157 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 352
store double 5.157060e+01, double* %157
%158 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 353
store double 1.529640e+02, double* %158
%159 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 354
store double 1.394050e+01, double* %159
%160 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 355
store double 5.237420e+01, double* %160
%161 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 356
store double 1.108640e+01, double* %161
%162 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 360
store double 2.407350e+01, double* %162
%163 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 361
store double 3.815330e+01, double* %163
%164 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 362
store double 1.086000e+02, double* %164
%165 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 363
store double 3.257110e+01, double* %165
%166 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 364
store double 5.438330e+01, double* %166
%167 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 365
store double 2.277100e+01, double* %167
%168 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 366
store double 1.963030e+01, double* %168
%169 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 367
store double 1.036040e+01, double* %169
%170 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 368
store double 3.873440e+02, double* %170
%171 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 369
store double 4.201700e+01, double* %171
%172 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 370
store double 3.986180e+01, double* %172
%173 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 371
store double 1.332640e+01, double* %173
%174 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 372
store double 4.284370e+01, double* %174
%175 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 373
store double 0x40842B6C8B439581, double* %175
%176 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 374
store double 2.160460e+01, double* %176
%177 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 375
store double 7.869930e+01, double* %177
%178 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 376
store double 2.911480e+01, double* %178
%179 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 377
store double 2.485390e+02, double* %179
%180 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 380
store double 2.006010e+02, double* %180
%181 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 381
store double 2.518490e+01, double* %181
%182 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 382
store double 1.962460e+01, double* %182
%183 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 383
store double 1.523350e+01, double* %183
%184 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 384
store double 1.002140e+02, double* %184
%185 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 385
store double 3.012810e+01, double* %185
%186 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 386
store double 5.887310e+01, double* %186
%187 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 387
store double 1.872470e+01, double* %187
%188 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 388
store double 1.183580e+01, double* %188
%189 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 389
store double 0x4088710A3D70A3D7, double* %189
%190 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 390
store double 1.800340e+02, double* %190
%191 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 391
store double 3.054340e+01, double* %191
%192 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 392
store double 2.058450e+02, double* %192
%193 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 393
store double 6.498920e+01, double* %193
%194 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 394
store double 3.148870e+01, double* %194
%195 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 395
store double 2.327390e+01, double* %195
%196 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 396
store double 1.388230e+02, double* %196
%197 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 397
store double 3.653690e+01, double* %197
%198 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 398
store double 3.147300e+01, double* %198
store i32 0, i32* %6
br label %199
199: ; preds = %217, %1
%200 = load i32, i32* %6
%201 = icmp slt i32 %200, 20
br i1 %201, label %202, label %220
202: ; preds = %199
store i32 0, i32* %7
br label %203
203: ; preds = %213, %202
%204 = load i32, i32* %7
%205 = icmp slt i32 %204, 20
br i1 %205, label %206, label %216
206: ; preds = %203
%207 = load i32, i32* %6
%208 = sext i32 %207 to i64
%209 = getelementptr inbounds [20 x [20 x double]], [20 x [20 x double]]* %4, i64 0, i64 %208
%210 = load i32, i32* %7
%211 = sext i32 %210 to i64
%212 = getelementptr inbounds [20 x double], [20 x double]* %209, i64 0, i64 %211
store double 0.000000e+00, double* %212
br label %213
213: ; preds = %206
%214 = load i32, i32* %7
%215 = add nsw i32 %214, 1
store i32 %215, i32* %7
br label %203
216: ; preds = %203
br label %217
217: ; preds = %216
%218 = load i32, i32* %6
%219 = add nsw i32 %218, 1
store i32 %219, i32* %6
br label %199
220: ; preds = %199
store i32 0, i32* %6
br label %221
221: ; preds = %247, %220
%222 = load i32, i32* %6
%223 = icmp slt i32 %222, 20
br i1 %223, label %224, label %250
224: ; preds = %221
store i32 0, i32* %7
br label %225
225: ; preds = %243, %224
%226 = load i32, i32* %7
%227 = load i32, i32* %6
%228 = icmp slt i32 %226, %227
br i1 %228, label %229, label %246
229: ; preds = %225
%230 = load i32, i32* %6
%231 = mul nsw i32 %230, 20
%232 = load i32, i32* %7
%233 = add nsw i32 %231, %232
%234 = sext i32 %233 to i64
%235 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 %234
%236 = load double, double* %235
%237 = load i32, i32* %7
%238 = mul nsw i32 %237, 20
%239 = load i32, i32* %6
%240 = add nsw i32 %238, %239
%241 = sext i32 %240 to i64
%242 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 %241
store double %236, double* %242
br label %243
243: ; preds = %229
%244 = load i32, i32* %7
%245 = add nsw i32 %244, 1
store i32 %245, i32* %7
br label %225
246: ; preds = %225
br label %247
247: ; preds = %246
%248 = load i32, i32* %6
%249 = add nsw i32 %248, 1
store i32 %249, i32* %6
br label %221
250: ; preds = %221
store i32 0, i32* %6
br label %251
251: ; preds = %278, %250
%252 = load i32, i32* %6
%253 = icmp slt i32 %252, 19
br i1 %253, label %254, label %281
254: ; preds = %251
%255 = load i32, i32* %6
%256 = add nsw i32 %255, 1
store i32 %256, i32* %7
br label %257
257: ; preds = %274, %254
%258 = load i32, i32* %7
%259 = icmp slt i32 %258, 20
br i1 %259, label %260, label %277
260: ; preds = %257
%261 = load i32, i32* %6
%262 = mul nsw i32 %261, 20
%263 = load i32, i32* %7
%264 = add nsw i32 %262, %263
%265 = sext i32 %264 to i64
%266 = getelementptr inbounds [400 x double], [400 x double]* %5, i64 0, i64 %265
%267 = load double, double* %266
%268 = load i32, i32* %6
%269 = sext i32 %268 to i64
%270 = getelementptr inbounds [20 x [20 x double]], [20 x [20 x double]]* %4, i64 0, i64 %269
%271 = load i32, i32* %7
%272 = sext i32 %271 to i64
%273 = getelementptr inbounds [20 x double], [20 x double]* %270, i64 0, i64 %272
store double %267, double* %273
br label %274
274: ; preds = %260
%275 = load i32, i32* %7
%276 = add nsw i32 %275, 1
store i32 %276, i32* %7
br label %257
277: ; preds = %257
br label %278
278: ; preds = %277
%279 = load i32, i32* %6
%280 = add nsw i32 %279, 1
store i32 %280, i32* %6
br label %251
281: ; preds = %251
%282 = getelementptr inbounds [20 x [20 x double]], [20 x [20 x double]]* %4, i64 0, i64 18
%283 = getelementptr inbounds [20 x double], [20 x double]* %282, i64 0, i64 19
%284 = load double, double* %283
%285 = fdiv double 1.000000e+00, %284
store double %285, double* %3
store i32 0, i32* %6
br label %286
286: ; preds = %309, %281
%287 = load i32, i32* %6
%288 = icmp slt i32 %287, 19
br i1 %288, label %289, label %312
289: ; preds = %286
%290 = load i32, i32* %6
%291 = add nsw i32 %290, 1
store i32 %291, i32* %7
br label %292
292: ; preds = %305, %289
%293 = load i32, i32* %7
%294 = icmp slt i32 %293, 20
br i1 %294, label %295, label %308
295: ; preds = %292
%296 = load double, double* %3
%297 = load i32, i32* %6
%298 = sext i32 %297 to i64
%299 = getelementptr inbounds [20 x [20 x double]], [20 x [20 x double]]* %4, i64 0, i64 %298
%300 = load i32, i32* %7
%301 = sext i32 %300 to i64
%302 = getelementptr inbounds [20 x double], [20 x double]* %299, i64 0, i64 %301
%303 = load double, double* %302
%304 = fmul double %303, %296
store double %304, double* %302
br label %305
305: ; preds = %295
%306 = load i32, i32* %7
%307 = add nsw i32 %306, 1
store i32 %307, i32* %7
br label %292
308: ; preds = %292
br label %309
309: ; preds = %308
%310 = load i32, i32* %6
%311 = add nsw i32 %310, 1
store i32 %311, i32* %6
br label %286
312: ; preds = %286
store i32 0, i32* %6
store i32 0, i32* %8
br label %313
313: ; preds = %339, %312
%314 = load i32, i32* %6
%315 = icmp slt i32 %314, 19
br i1 %315, label %316, label %342
316: ; preds = %313
%317 = load i32, i32* %6
%318 = add nsw i32 %317, 1
store i32 %318, i32* %7
br label %319
319: ; preds = %335, %316
%320 = load i32, i32* %7
%321 = icmp slt i32 %320, 20
br i1 %321, label %322, label %338
322: ; preds = %319
%323 = load i32, i32* %6
%324 = sext i32 %323 to i64
%325 = getelementptr inbounds [20 x [20 x double]], [20 x [20 x double]]* %4, i64 0, i64 %324
%326 = load i32, i32* %7
%327 = sext i32 %326 to i64
%328 = getelementptr inbounds [20 x double], [20 x double]* %325, i64 0, i64 %327
%329 = load double, double* %328
%330 = load double*, double** %2
%331 = load i32, i32* %8
%332 = add nsw i32 %331, 1
store i32 %332, i32* %8
%333 = sext i32 %331 to i64
%334 = getelementptr inbounds double, double* %330, i64 %333
store double %329, double* %334
br label %335
335: ; preds = %322
%336 = load i32, i32* %7
%337 = add nsw i32 %336, 1
store i32 %337, i32* %7
br label %319
338: ; preds = %319
br label %339
339: ; preds = %338
%340 = load i32, i32* %6
%341 = add nsw i32 %340, 1
store i32 %341, i32* %6
br label %313
342: ; preds = %313
ret void
}

LLVM IR (-O2):
define void @putWAG(double* nocapture writeonly %0) {
%2 = alloca [20 x [20 x double]]
%3 = bitcast [20 x [20 x double]]* %2 to i8*
%4 = alloca [400 x double]
%5 = bitcast [400 x double]* %4 to i8*
%6 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 20
store double 5.515710e+01, double* %6
%7 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 40
%8 = bitcast double* %7 to <2 x double>*
store <2 x double> <double 5.098480e+01, double 6.353460e+01>, <2 x double>* %8
%9 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 60
%10 = bitcast double* %9 to <2 x double>*
store <2 x double> <double 7.389980e+01, double 1.473040e+01>, <2 x double>* %10
%11 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 62
store double 5.429420e+02, double* %11
%12 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 80
%13 = bitcast double* %12 to <2 x double>*
store <2 x double> <double 1.027040e+02, double 5.281910e+01>, <2 x double>* %13
%14 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 82
%15 = bitcast double* %14 to <2 x double>*
store <2 x double> <double 2.652560e+01, double 3.029490e+00>, <2 x double>* %15
%16 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 100
%17 = bitcast double* %16 to <2 x double>*
store <2 x double> <double 9.085980e+01, double 3.035500e+02>, <2 x double>* %17
%18 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 102
%19 = bitcast double* %18 to <2 x double>*
store <2 x double> <double 1.543640e+02, double 6.167830e+01>, <2 x double>* %19
%20 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 104
store double 9.881790e+00, double* %20
%21 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 120
%22 = bitcast double* %21 to <2 x double>*
store <2 x double> <double 1.582850e+02, double 4.391570e+01>, <2 x double>* %22
%23 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 122
%24 = bitcast double* %23 to <2 x double>*
store <2 x double> <double 9.471980e+01, double 6.174160e+02>, <2 x double>* %24
%25 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 124
%26 = bitcast double* %25 to <2 x double>*
store <2 x double> <double 2.135200e+00, double 5.469470e+02>, <2 x double>* %26
%27 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 140
%28 = bitcast double* %27 to <2 x double>*
store <2 x double> <double 1.416720e+02, double 5.846650e+01>, <2 x double>* %28
%29 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 142
%30 = bitcast double* %29 to <2 x double>*
store <2 x double> <double 1.125560e+02, double 8.655840e+01>, <2 x double>* %30
%31 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 144
%32 = bitcast double* %31 to <2 x double>*
store <2 x double> <double 3.066740e+01, double 3.300520e+01>, <2 x double>* %32
%33 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 146
store double 5.677170e+01, double* %33
%34 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 160
%35 = bitcast double* %34 to <2 x double>*
store <2 x double> <double 3.169540e+01, double 2.137150e+02>, <2 x double>* %35
%36 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 162
%37 = bitcast double* %36 to <2 x double>*
store <2 x double> <double 3.956290e+02, double 0x405744538EF34D6A>, <2 x double>* %37
%38 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 164
%39 = bitcast double* %38 to <2 x double>*
store <2 x double> <double 2.489720e+01, double 4.294110e+02>, <2 x double>* %39
%40 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 166
%41 = bitcast double* %40 to <2 x double>*
store <2 x double> <double 5.700250e+01, double 2.494100e+01>, <2 x double>* %41
%42 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 180
%43 = bitcast double* %42 to <2 x double>*
store <2 x double> <double 1.933350e+01, double 1.869790e+01>, <2 x double>* %43
%44 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 182
%45 = bitcast double* %44 to <2 x double>*
store <2 x double> <double 5.542360e+01, double 3.943700e+00>, <2 x double>* %45
%46 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 184
%47 = bitcast double* %46 to <2 x double>*
store <2 x double> <double 1.701350e+01, double 1.139170e+01>, <2 x double>* %47
%48 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 186
%49 = bitcast double* %48 to <2 x double>*
store <2 x double> <double 1.273950e+01, double 3.045010e+00>, <2 x double>* %49
%50 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 188
store double 1.381900e+01, double* %50
%51 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 200
%52 = bitcast double* %51 to <2 x double>*
store <2 x double> <double 3.979150e+01, double 4.976710e+01>, <2 x double>* %52
%53 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 202
%54 = bitcast double* %53 to <2 x double>*
store <2 x double> <double 1.315280e+01, double 8.480470e+00>, <2 x double>* %54
%55 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 204
%56 = bitcast double* %55 to <2 x double>*
store <2 x double> <double 3.842870e+01, double 0x4055BCBAC710CB29>, <2 x double>* %56
%57 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 206
%58 = bitcast double* %57 to <2 x double>*
store <2 x double> <double 1.542630e+01, double 6.130370e+00>, <2 x double>* %58
%59 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 208
%60 = bitcast double* %59 to <2 x double>*
store <2 x double> <double 4.994620e+01, double 3.170970e+02>, <2 x double>* %60
%61 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 220
%62 = bitcast double* %61 to <2 x double>*
store <2 x double> <double 9.062650e+01, double 5.351420e+02>, <2 x double>* %62
%63 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 222
%64 = bitcast double* %63 to <2 x double>*
store <2 x double> <double 3.012010e+02, double 4.798550e+01>, <2 x double>* %64
%65 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 224
%66 = bitcast double* %65 to <2 x double>*
store <2 x double> <double 7.403390e+00, double 3.894900e+02>, <2 x double>* %66
%67 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 226
%68 = bitcast double* %67 to <2 x double>*
store <2 x double> <double 2.584430e+02, double 3.735580e+01>, <2 x double>* %68
%69 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 228
%70 = bitcast double* %69 to <2 x double>*
store <2 x double> <double 0x405642C3C9EECBFB, double 3.238320e+01>, <2 x double>* %70
%71 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 230
store double 2.575550e+01, double* %71
%72 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 240
%73 = bitcast double* %72 to <2 x double>*
store <2 x double> <double 0x4056565FD8ADAB9F, double 6.831620e+01>, <2 x double>* %73
%74 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 242
%75 = bitcast double* %74 to <2 x double>*
store <2 x double> <double 1.982210e+01, double 1.037540e+01>, <2 x double>* %75
%76 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 244
%77 = bitcast double* %76 to <2 x double>*
store <2 x double> <double 3.904820e+01, double 1.545260e+02>, <2 x double>* %77
%78 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 246
%79 = bitcast double* %78 to <2 x double>*
store <2 x double> <double 3.151240e+01, double 1.741000e+01>, <2 x double>* %79
%80 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 248
%81 = bitcast double* %80 to <2 x double>*
store <2 x double> <double 4.041410e+01, double 4.257460e+02>, <2 x double>* %81
%82 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 250
%83 = bitcast double* %82 to <2 x double>*
store <2 x double> <double 4.854020e+02, double 0x40575B5DCC63F141>, <2 x double>* %83
%84 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 260
%85 = bitcast double* %84 to <2 x double>*
store <2 x double> <double 2.104940e+01, double 1.027110e+01>, <2 x double>* %85
%86 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 262
%87 = bitcast double* %86 to <2 x double>*
store <2 x double> <double 9.616210e+00, double 4.673040e+00>, <2 x double>* %87
%88 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 264
%89 = bitcast double* %88 to <2 x double>*
store <2 x double> <double 3.980200e+01, double 0x4023FBF1E8E60807>, <2 x double>* %89
%90 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 266
%91 = bitcast double* %90 to <2 x double>*
store <2 x double> <double 8.113390e+00, double 4.993100e+00>, <2 x double>* %91
%92 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 268
%93 = bitcast double* %92 to <2 x double>*
store <2 x double> <double 6.793710e+01, double 1.059470e+02>, <2 x double>* %93
%94 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 270
%95 = bitcast double* %94 to <2 x double>*
store <2 x double> <double 2.115170e+02, double 8.883600e+00>, <2 x double>* %95
%96 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 272
store double 1.190630e+02, double* %96
%97 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 280
%98 = bitcast double* %97 to <2 x double>*
store <2 x double> <double 1.438550e+02, double 6.794890e+01>, <2 x double>* %98
%99 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 282
%100 = bitcast double* %99 to <2 x double>*
store <2 x double> <double 1.950810e+01, double 4.239840e+01>, <2 x double>* %100
%101 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 284
%102 = bitcast double* %101 to <2 x double>*
store <2 x double> <double 1.094040e+01, double 0x40575594AF4F0D84>, <2 x double>* %102
%103 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 286
%104 = bitcast double* %103 to <2 x double>*
store <2 x double> <double 6.823550e+01, double 2.435700e+01>, <2 x double>* %104
%105 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 288
%106 = bitcast double* %105 to <2 x double>*
store <2 x double> <double 0x405167AACD9E83E4, double 0x4023FC5AC471B478>, <2 x double>* %106
%107 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 290
%108 = bitcast double* %107 to <2 x double>*
store <2 x double> <double 4.158440e+01, double 5.568960e+01>, <2 x double>* %108
%109 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 292
%110 = bitcast double* %109 to <2 x double>*
store <2 x double> <double 1.713290e+01, double 1.614440e+01>, <2 x double>* %110
%111 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 300
%112 = bitcast double* %111 to <2 x double>*
store <2 x double> <double 3.370790e+02, double 1.224190e+02>, <2 x double>* %112
%113 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 302
%114 = bitcast double* %113 to <2 x double>*
store <2 x double> <double 3.974230e+02, double 1.071760e+02>, <2 x double>* %114
%115 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 304
%116 = bitcast double* %115 to <2 x double>*
store <2 x double> <double 1.407660e+02, double 1.028870e+02>, <2 x double>* %116
%117 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 306
%118 = bitcast double* %117 to <2 x double>*
store <2 x double> <double 0x40519F9C0EBEDFA4, double 1.341820e+02>, <2 x double>* %118
%119 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 308
%120 = bitcast double* %119 to <2 x double>*
store <2 x double> <double 7.401690e+01, double 3.194400e+01>, <2 x double>* %120
%121 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 310
%122 = bitcast double* %121 to <2 x double>*
store <2 x double> <double 3.447390e+01, double 0x40582DA1CAC08312>, <2 x double>* %122
%123 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 312
%124 = bitcast double* %123 to <2 x double>*
store <2 x double> <double 4.939050e+01, double 5.459310e+01>, <2 x double>* %124
%125 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 314
store double 1.613280e+02, double* %125
%126 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 320
%127 = bitcast double* %126 to <2 x double>*
store <2 x double> <double 2.121110e+02, double 5.544130e+01>, <2 x double>* %127
%128 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 322
%129 = bitcast double* %128 to <2 x double>*
store <2 x double> <double 2.030060e+02, double 3.748660e+01>, <2 x double>* %129
%130 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 324
%131 = bitcast double* %130 to <2 x double>*
store <2 x double> <double 5.129840e+01, double 0x405572BD3C361134>, <2 x double>* %131
%132 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 326
%133 = bitcast double* %132 to <2 x double>*
store <2 x double> <double 0x405491B22D0E5604, double 2.258330e+01>, <2 x double>* %133
%134 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 328
%135 = bitcast double* %134 to <2 x double>*
store <2 x double> <double 4.733070e+01, double 1.458160e+02>, <2 x double>* %135
%136 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 330
%137 = bitcast double* %136 to <2 x double>*
store <2 x double> <double 3.266220e+01, double 1.386980e+02>, <2 x double>* %137
%138 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 332
%139 = bitcast double* %138 to <2 x double>*
store <2 x double> <double 1.516120e+02, double 1.719030e+01>, <2 x double>* %139
%140 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 334
%141 = bitcast double* %140 to <2 x double>*
store <2 x double> <double 7.953840e+01, double 4.378020e+02>, <2 x double>* %141
%142 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 340
%143 = bitcast double* %142 to <2 x double>*
store <2 x double> <double 1.131330e+01, double 1.163920e+02>, <2 x double>* %143
%144 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 342
%145 = bitcast double* %144 to <2 x double>*
store <2 x double> <double 7.191670e+00, double 1.297670e+01>, <2 x double>* %145
%146 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 344
%147 = bitcast double* %146 to <2 x double>*
store <2 x double> <double 0x4051ED3F7CED9168, double 2.157370e+01>, <2 x double>* %147
%148 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 346
%149 = bitcast double* %148 to <2 x double>*
store <2 x double> <double 1.565570e+01, double 3.369830e+01>, <2 x double>* %149
%150 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 348
%151 = bitcast double* %150 to <2 x double>*
store <2 x double> <double 2.625690e+01, double 2.124830e+01>, <2 x double>* %151
%152 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 350
%153 = bitcast double* %152 to <2 x double>*
store <2 x double> <double 6.653090e+01, double 1.375050e+01>, <2 x double>* %153
%154 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 352
%155 = bitcast double* %154 to <2 x double>*
store <2 x double> <double 5.157060e+01, double 1.529640e+02>, <2 x double>* %155
%156 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 354
%157 = bitcast double* %156 to <2 x double>*
store <2 x double> <double 1.394050e+01, double 5.237420e+01>, <2 x double>* %157
%158 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 356
store double 1.108640e+01, double* %158
%159 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 360
%160 = bitcast double* %159 to <2 x double>*
store <2 x double> <double 2.407350e+01, double 3.815330e+01>, <2 x double>* %160
%161 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 362
%162 = bitcast double* %161 to <2 x double>*
store <2 x double> <double 1.086000e+02, double 3.257110e+01>, <2 x double>* %162
%163 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 364
%164 = bitcast double* %163 to <2 x double>*
store <2 x double> <double 5.438330e+01, double 2.277100e+01>, <2 x double>* %164
%165 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 366
%166 = bitcast double* %165 to <2 x double>*
store <2 x double> <double 1.963030e+01, double 1.036040e+01>, <2 x double>* %166
%167 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 368
%168 = bitcast double* %167 to <2 x double>*
store <2 x double> <double 3.873440e+02, double 4.201700e+01>, <2 x double>* %168
%169 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 370
%170 = bitcast double* %169 to <2 x double>*
store <2 x double> <double 3.986180e+01, double 1.332640e+01>, <2 x double>* %170
%171 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 372
%172 = bitcast double* %171 to <2 x double>*
store <2 x double> <double 4.284370e+01, double 0x40842B6C8B439581>, <2 x double>* %172
%173 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 374
%174 = bitcast double* %173 to <2 x double>*
store <2 x double> <double 2.160460e+01, double 7.869930e+01>, <2 x double>* %174
%175 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 376
%176 = bitcast double* %175 to <2 x double>*
store <2 x double> <double 2.911480e+01, double 2.485390e+02>, <2 x double>* %176
%177 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 380
%178 = bitcast double* %177 to <2 x double>*
store <2 x double> <double 2.006010e+02, double 2.518490e+01>, <2 x double>* %178
%179 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 382
%180 = bitcast double* %179 to <2 x double>*
store <2 x double> <double 1.962460e+01, double 1.523350e+01>, <2 x double>* %180
%181 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 384
%182 = bitcast double* %181 to <2 x double>*
store <2 x double> <double 1.002140e+02, double 3.012810e+01>, <2 x double>* %182
%183 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 386
%184 = bitcast double* %183 to <2 x double>*
store <2 x double> <double 5.887310e+01, double 1.872470e+01>, <2 x double>* %184
%185 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 388
%186 = bitcast double* %185 to <2 x double>*
store <2 x double> <double 1.183580e+01, double 0x4088710A3D70A3D7>, <2 x double>* %186
%187 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 390
%188 = bitcast double* %187 to <2 x double>*
store <2 x double> <double 1.800340e+02, double 3.054340e+01>, <2 x double>* %188
%189 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 392
%190 = bitcast double* %189 to <2 x double>*
store <2 x double> <double 2.058450e+02, double 6.498920e+01>, <2 x double>* %190
%191 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 394
%192 = bitcast double* %191 to <2 x double>*
store <2 x double> <double 3.148870e+01, double 2.327390e+01>, <2 x double>* %192
%193 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 396
%194 = bitcast double* %193 to <2 x double>*
store <2 x double> <double 1.388230e+02, double 3.653690e+01>, <2 x double>* %194
%195 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 398
store double 3.147300e+01, double* %195
br label %196
196: ; preds = %1, %234
%197 = phi i64 [ 0, %1 ], [ %235, %234 ]
%198 = icmp eq i64 %197, 0
br i1 %198, label %234, label %199
199: ; preds = %196
%200 = mul nuw nsw i64 %197, 20
%201 = and i64 %197, 1
%202 = icmp eq i64 %197, 1
br i1 %202, label %224, label %203
203: ; preds = %199
%204 = and i64 %197, 9223372036854775806
br label %205
205: ; preds = %205, %203
%206 = phi i64 [ 0, %203 ], [ %221, %205 ]
%207 = phi i64 [ 0, %203 ], [ %222, %205 ]
%208 = add nuw nsw i64 %206, %200
%209 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 %208
%210 = load double, double* %209
%211 = mul nuw nsw i64 %206, 20
%212 = add nuw nsw i64 %211, %197
%213 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 %212
store double %210, double* %213
%214 = or i64 %206, 1
%215 = add nuw nsw i64 %214, %200
%216 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 %215
%217 = load double, double* %216
%218 = mul nuw nsw i64 %214, 20
%219 = add nuw nsw i64 %218, %197
%220 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 %219
store double %217, double* %220
%221 = add nuw nsw i64 %206, 2
%222 = add i64 %207, 2
%223 = icmp eq i64 %222, %204
br i1 %223, label %224, label %205
224: ; preds = %205, %199
%225 = phi i64 [ 0, %199 ], [ %221, %205 ]
%226 = icmp eq i64 %201, 0
br i1 %226, label %234, label %227
227: ; preds = %224
%228 = add nuw nsw i64 %225, %200
%229 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 %228
%230 = load double, double* %229
%231 = mul nuw nsw i64 %225, 20
%232 = add nuw nsw i64 %231, %197
%233 = getelementptr inbounds [400 x double], [400 x double]* %4, i64 0, i64 %232
store double %230, double* %233
br label %234
234: ; preds = %227, %224, %196
%235 = add nuw nsw i64 %197, 1
%236 = icmp eq i64 %235, 20
br i1 %236, label %237, label %196
237: ; preds = %234, %249
%238 = phi i64 [ %252, %249 ], [ 0, %234 ]
%239 = mul nuw nsw i64 %238, 21
%240 = or i64 %239, 1
%241 = or i64 %238, 1
%242 = mul nsw i64 %238, -8
%243 = add nsw i64 %242, 152
%244 = getelementptr [400 x double], [400 x double]* %4, i64 0, i64 %240
%245 = bitcast double* %244 to i8*
%246 = getelementptr [20 x [20 x double]], [20 x [20 x double]]* %2, i64 0, i64 0, i64 %240
%247 = bitcast double* %246 to i8*
%248 = icmp eq i64 %241, 19
br i1 %248, label %259, label %249
249: ; preds = %237
%250 = mul nuw nsw i64 %241, 21
%251 = add nuw nsw i64 %250, 1
%252 = add nuw nsw i64 %238, 2
%253 = mul nsw i64 %241, -8
%254 = add nsw i64 %253, 152
%255 = getelementptr [400 x double], [400 x double]* %4, i64 0, i64 %251
%256 = bitcast double* %255 to i8*
%257 = getelementptr [20 x [20 x double]], [20 x [20 x double]]* %2, i64 0, i64 0, i64 %251
%258 = bitcast double* %257 to i8*
br label %237
259: ; preds = %237
%260 = getelementptr inbounds [20 x [20 x double]], [20 x [20 x double]]* %2, i64 0, i64 18, i64 19
%261 = load double, double* %260
%262 = fdiv double 1.000000e+00, %261
%263 = insertelement <2 x double> poison, double %262, i64 0
%264 = shufflevector <2 x double> %263, <2 x double> poison, <2 x i32> zeroinitializer
br label %268
265: ; preds = %336, %332
%266 = add nuw nsw i64 %270, 1
%267 = icmp eq i64 %275, 19
br i1 %267, label %347, label %268
268: ; preds = %265, %259
%269 = phi i64 [ 0, %259 ], [ %275, %265 ]
%270 = phi i64 [ 1, %259 ], [ %266, %265 ]
%271 = sub nsw i64 17, %269
%272 = lshr i64 %271, 1
%273 = add nuw i64 %272, 1
%274 = sub nsw i64 19, %269
%275 = add nuw nsw i64 %269, 1
%276 = icmp ult i64 %274, 2
br i1 %276, label %334, label %277
277: ; preds = %268
%278 = and i64 %274, -2
%279 = add i64 %270, %278
%280 = and i64 %273, 3
%281 = icmp ult i64 %271, 6
br i1 %281, label %317, label %282
282: ; preds = %277
%283 = and i64 %273, -4
br label %284
284: ; preds = %284, %282
%285 = phi i64 [ 0, %282 ], [ %314, %284 ]
%286 = phi i64 [ 0, %282 ], [ %315, %284 ]
%287 = add i64 %270, %285
%288 = getelementptr inbounds [20 x [20 x double]], [20 x [20 x double]]* %2, i64 0, i64 %269, i64 %287
%289 = bitcast double* %288 to <2 x double>*
%290 = load <2 x double>, <2 x double>* %289
%291 = fmul <2 x double> %264, %290
%292 = bitcast double* %288 to <2 x double>*
store <2 x double> %291, <2 x double>* %292
%293 = or i64 %285, 2
%294 = add i64 %270, %293
%295 = getelementptr inbounds [20 x [20 x double]], [20 x [20 x double]]* %2, i64 0, i64 %269, i64 %294
%296 = bitcast double* %295 to <2 x double>*
%297 = load <2 x double>, <2 x double>* %296
%298 = fmul <2 x double> %264, %297
%299 = bitcast double* %295 to <2 x double>*
store <2 x double> %298, <2 x double>* %299
%300 = or i64 %285, 4
%301 = add i64 %270, %300
%302 = getelementptr inbounds [20 x [20 x double]], [20 x [20 x double]]* %2, i64 0, i64 %269, i64 %301
%303 = bitcast double* %302 to <2 x double>*
%304 = load <2 x double>, <2 x double>* %303
%305 = fmul <2 x double> %264, %304
%306 = bitcast double* %302 to <2 x double>*
store <2 x double> %305, <2 x double>* %306
%307 = or i64 %285, 6
%308 = add i64 %270, %307
%309 = getelementptr inbounds [20 x [20 x double]], [20 x [20 x double]]* %2, i64 0, i64 %269, i64 %308
%310 = bitcast double* %309 to <2 x double>*
%311 = load <2 x double>, <2 x double>* %310
%312 = fmul <2 x double> %264, %311
%313 = bitcast double* %309 to <2 x double>*
store <2 x double> %312, <2 x double>* %313
%314 = add nuw i64 %285, 8
%315 = add i64 %286, 4
%316 = icmp eq i64 %315, %283
br i1 %316, label %317, label %284
317: ; preds = %284, %277
%318 = phi i64 [ 0, %277 ], [ %314, %284 ]
%319 = icmp eq i64 %280, 0
br i1 %319, label %332, label %320
320: ; preds = %317, %320
%321 = phi i64 [ %329, %320 ], [ %318, %317 ]
%322 = phi i64 [ %330, %320 ], [ 0, %317 ]
%323 = add i64 %270, %321
%324 = getelementptr inbounds [20 x [20 x double]], [20 x [20 x double]]* %2, i64 0, i64 %269, i64 %323
%325 = bitcast double* %324 to <2 x double>*
%326 = load <2 x double>, <2 x double>* %325
%327 = fmul <2 x double> %264, %326
%328 = bitcast double* %324 to <2 x double>*
store <2 x double> %327, <2 x double>* %328
%329 = add nuw i64 %321, 2
%330 = add i64 %322, 1
%331 = icmp eq i64 %330, %280
br i1 %331, label %332, label %320
332: ; preds = %320, %317
%333 = icmp eq i64 %274, %278
br i1 %333, label %265, label %334
334: ; preds = %268, %332
%335 = phi i64 [ %270, %268 ], [ %279, %332 ]
br label %336
336: ; preds = %334, %336
%337 = phi i64 [ %341, %336 ], [ %335, %334 ]
%338 = getelementptr inbounds [20 x [20 x double]], [20 x [20 x double]]* %2, i64 0, i64 %269, i64 %337
%339 = load double, double* %338
%340 = fmul double %262, %339
store double %340, double* %338
%341 = add nuw nsw i64 %337, 1
%342 = icmp eq i64 %341, 20
br i1 %342, label %265, label %336
343: ; preds = %398, %391
%344 = phi i64 [ %393, %391 ], [ %401, %398 ]
%345 = add nuw nsw i64 %348, 1
%346 = icmp eq i64 %355, 19
br i1 %346, label %404, label %347
347: ; preds = %265, %343
%348 = phi i64 [ %345, %343 ], [ 1, %265 ]
%349 = phi i64 [ %355, %343 ], [ 0, %265 ]
%350 = phi i64 [ %344, %343 ], [ 0, %265 ]
%351 = sub nsw i64 17, %349
%352 = lshr i64 %351, 1
%353 = add nuw i64 %352, 1
%354 = sub nsw i64 19, %349
%355 = add nuw nsw i64 %349, 1
%356 = mul nsw i64 %349, -8
%357 = add nsw i64 %356, 152
%358 = mul nuw nsw i64 %349, 21
%359 = add nuw nsw i64 %358, 1
%360 = getelementptr [20 x [20 x double]], [20 x [20 x double]]* %2, i64 0, i64 0, i64 %359
%361 = bitcast double* %360 to i8*
%362 = shl i64 %350, 32
%363 = ashr exact i64 %362, 32
%364 = getelementptr double, double* %0, i64 %363
%365 = bitcast double* %364 to i8*
%366 = icmp ult i64 %354, 2
br i1 %366, label %395, label %367
367: ; preds = %347
%368 = and i64 %354, -2
%369 = add i64 %348, %368
%370 = insertelement <2 x i64> <i64 poison, i64 0>, i64 %363, i64 0
%371 = and i64 %353, 7
%372 = icmp ult i64 %351, 14
br i1 %372, label %381, label %373
373: ; preds = %367
%374 = and i64 %353, -8
br label %375
375: ; preds = %375, %373
%376 = phi <2 x i64> [ %370, %373 ], [ %378, %375 ]
%377 = phi i64 [ 0, %373 ], [ %379, %375 ]
%378 = add <2 x i64> %376, <i64 8, i64 8>
%379 = add i64 %377, 8
%380 = icmp eq i64 %379, %374
br i1 %380, label %381, label %375
381: ; preds = %375, %367
%382 = phi <2 x i64> [ undef, %367 ], [ %378, %375 ]
%383 = phi <2 x i64> [ %370, %367 ], [ %378, %375 ]
%384 = icmp eq i64 %371, 0
br i1 %384, label %391, label %385
385: ; preds = %381, %385
%386 = phi <2 x i64> [ %388, %385 ], [ %383, %381 ]
%387 = phi i64 [ %389, %385 ], [ 0, %381 ]
%388 = add <2 x i64> %386, <i64 1, i64 1>
%389 = add i64 %387, 1
%390 = icmp eq i64 %389, %371
br i1 %390, label %391, label %385
391: ; preds = %385, %381
%392 = phi <2 x i64> [ %382, %381 ], [ %388, %385 ]
%393 = call i64 @llvm.vector.reduce.add.v2i64(<2 x i64> %392)
%394 = icmp eq i64 %354, %368
br i1 %394, label %343, label %395
395: ; preds = %347, %391
%396 = phi i64 [ %348, %347 ], [ %369, %391 ]
%397 = phi i64 [ %363, %347 ], [ %393, %391 ]
br label %398
398: ; preds = %395, %398
%399 = phi i64 [ %402, %398 ], [ %396, %395 ]
%400 = phi i64 [ %401, %398 ], [ %397, %395 ]
%401 = add nsw i64 %400, 1
%402 = add nuw nsw i64 %399, 1
%403 = icmp eq i64 %402, 20
br i1 %403, label %343, label %398
404: ; preds = %343
ret void
}