int odruv_(int *iseed, int *n, double *x) {
  static int mm[512] = {
      494,  2637, 255,  2008, 1253, 3344, 4084, 1739, 3143, 3468, 688,  1657,
      1238, 3166, 1292, 3422, 1270, 2016, 154,  2862, 697,  1706, 491,  931,
      1444, 444,  3577, 3944, 2184, 1661, 3482, 657,  3023, 3618, 1267, 1828,
      164,  3798, 3087, 2400, 2870, 3876, 1905, 1593, 1797, 1234, 3460, 328,
      2861, 1950, 617,  2070, 3331, 769,  1558, 2412, 2800, 189,  287,  2045,
      1227, 2838, 209,  2770, 3654, 3993, 192,  2253, 3491, 2889, 2857, 2094,
      1818, 688,  1407, 634,  3231, 815,  3524, 1914, 516,  164,  303,  2144,
      3480, 119,  3357, 837,  2826, 2332, 2089, 3780, 1700, 3712, 150,  2000,
      3375, 1621, 3090, 3765, 1149, 3146, 33,   3082, 2741, 359,  3316, 1749,
      185,  2784, 2202, 2199, 1364, 1244, 2020, 3160, 2785, 2772, 1217, 1822,
      1245, 2252, 3904, 2774, 997,  2573, 1148, 545,  322,  789,  1440, 752,
      2859, 123,  1848, 643,  2405, 2638, 2344, 46,   3814, 913,  3649, 339,
      3808, 822,  2832, 3078, 3633, 2970, 637,  2249, 2081, 4019, 1478, 242,
      481,  2075, 4058, 622,  3376, 812,  234,  641,  4005, 1122, 3135, 2640,
      2302, 40,   1832, 2247, 2034, 2637, 1287, 1691, 496,  1597, 2394, 2584,
      1843, 336,  1472, 2407, 433,  2096, 1761, 2810, 566,  442,  41,   1238,
      1086, 603,  840,  3168, 1499, 1084, 3438, 2408, 1589, 2391, 288,  26,
      512,  1456, 171,  1677, 2657, 2270, 2587, 2961, 1970, 1817, 676,  1410,
      3723, 2803, 3185, 184,  663,  499,  3784, 1631, 1925, 3912, 1398, 1349,
      1441, 2224, 2411, 1907, 3192, 2786, 382,  37,   759,  2948, 1862, 3802,
      2423, 2051, 2295, 1332, 1832, 2405, 3638, 3661, 327,  3660, 716,  1842,
      3987, 1368, 1848, 2366, 2508, 3754, 1766, 3572, 2893, 307,  1297, 3966,
      758,  2598, 3406, 2922, 1038, 2934, 2091, 2451, 1580, 1958, 2055, 1507,
      1078, 3273, 17,   854,  2916, 3971, 2889, 3831, 2621, 1541, 893,  736,
      3992, 787,  2125, 2364, 2460, 257,  1574, 3912, 1216, 3248, 3401, 2124,
      2762, 149,  2245, 166,  466,  4018, 1399, 190,  2879, 153,  2320, 18,
      712,  2159, 2318, 2091, 3443, 1510, 449,  1956, 2201, 3137, 3399, 1321,
      2271, 3667, 2703, 629,  2365, 2431, 1113, 3922, 2554, 184,  2099, 3228,
      4012, 1921, 3452, 3901, 572,  3309, 3171, 817,  3039, 1696, 1256, 3715,
      2077, 3019, 1497, 1101, 717,  51,   981,  1978, 1813, 3881, 76,   3846,
      3694, 1682, 124,  1660, 3997, 479,  1141, 886,  3514, 1301, 3604, 1888,
      1836, 1990, 2058, 692,  1194, 20,   3285, 2046, 2107, 3508, 3525, 3801,
      2549, 1145, 2253, 305,  3301, 1065, 3133, 2913, 3285, 1241, 1197, 3729,
      2501, 1673, 541,  2753, 949,  2361, 1165, 4081, 2725, 3305, 3069, 3617,
      3733, 409,  2157, 1361, 3973, 1865, 2525, 1409, 3445, 3577, 77,   3761,
      2149, 1449, 3005, 225,  85,   3673, 3117, 3089, 1349, 2057, 413,  65,
      1845, 697,  3085, 3441, 1573, 3689, 2941, 929,  533,  2841, 4077, 721,
      2821, 2249, 2397, 2817, 245,  1913, 1997, 3121, 997,  1833, 2877, 1633,
      981,  2009, 941,  2449, 197,  2441, 285,  1473, 2741, 3129, 909,  2801,
      421,  4073, 2813, 2337, 1429, 1177, 1901, 81,   1669, 2633, 2269, 129,
      1141, 249,  3917, 2481, 3941, 2217, 2749, 3041, 1877, 345,  2861, 1809,
      3141, 2825, 157,  2881, 3637, 1465, 2829, 2161, 3365, 361,  2685, 3745,
      2325, 3609, 3821, 3537, 517,  3017, 2141, 1537};
  int i__1;
  int i__, i1, i2, i3, i4, it1, it2, it3, it4;
  --iseed;
  --x;
  i1 = iseed[1];
  i2 = iseed[2];
  i3 = iseed[3];
  i4 = iseed[4];
  i__1 = ((*n) < (128) ? (*n) : (128));
  for (i__ = 1; i__ <= i__1; ++i__) {
  L20:
    it4 = i4 * mm[i__ + 383];
    it3 = it4 / 4096;
    it4 -= it3 << 12;
    it3 = it3 + i3 * mm[i__ + 383] + i4 * mm[i__ + 255];
    it2 = it3 / 4096;
    it3 -= it2 << 12;
    it2 = it2 + i2 * mm[i__ + 383] + i3 * mm[i__ + 255] + i4 * mm[i__ + 127];
    it1 = it2 / 4096;
    it2 -= it1 << 12;
    it1 = it1 + i1 * mm[i__ + 383] + i2 * mm[i__ + 255] + i3 * mm[i__ + 127] +
          i4 * mm[i__ - 1];
    it1 %= 4096;
    x[i__] = ((double)it1 +
              ((double)it2 +
               ((double)it3 + (double)it4 * 2.44140625e-4) * 2.44140625e-4) *
                  2.44140625e-4) *
             2.44140625e-4;
    if (x[i__] == 1.) {
      i1 += 2;
      i2 += 2;
      i3 += 2;
      i4 += 2;
      goto L20;
    }
  }
  iseed[1] = it1;
  iseed[2] = it2;
  iseed[3] = it3;
  iseed[4] = it4;
  return 0;
}


x86 assembly (clang, -O0):
<odruv_>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    -0x8(%rbp),%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x8(%rbp)
mov    -0x18(%rbp),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x24(%rbp)
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x28(%rbp)
mov    -0x8(%rbp),%rax
mov    0xc(%rax),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
mov    0x10(%rax),%eax
mov    %eax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
cmpl   $0x80,(%rax)
jge    116e <odruv_+0x6e>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x44(%rbp)
jmp    117b <odruv_+0x7b>
mov    $0x80,%eax
mov    %eax,-0x44(%rbp)
jmp    117b <odruv_+0x7b>
mov    -0x44(%rbp),%eax
mov    %eax,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jg     13db <odruv_+0x2db>
jmp    1199 <odruv_+0x99>
mov    -0x30(%rbp),%eax
mov    -0x20(%rbp),%ecx
add    $0x17f,%ecx
movslq %ecx,%rdx
lea    0x2e81(%rip),%rcx
imul   (%rcx,%rdx,4),%eax
mov    %eax,-0x40(%rbp)
mov    -0x40(%rbp),%eax
mov    $0x1000,%ecx
cltd
idiv   %ecx
mov    %eax,-0x3c(%rbp)
mov    -0x3c(%rbp),%ecx
shl    $0xc,%ecx
mov    -0x40(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x40(%rbp)
mov    -0x3c(%rbp),%eax
mov    -0x2c(%rbp),%ecx
mov    -0x20(%rbp),%edx
add    $0x17f,%edx
movslq %edx,%rsi
lea    0x2e45(%rip),%rdx
imul   (%rdx,%rsi,4),%ecx
add    %ecx,%eax
mov    -0x30(%rbp),%ecx
mov    -0x20(%rbp),%edx
add    $0xff,%edx
movslq %edx,%rsi
lea    0x2e29(%rip),%rdx
imul   (%rdx,%rsi,4),%ecx
add    %ecx,%eax
mov    %eax,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
mov    $0x1000,%ecx
cltd
idiv   %ecx
mov    %eax,-0x38(%rbp)
mov    -0x38(%rbp),%ecx
shl    $0xc,%ecx
mov    -0x3c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x3c(%rbp)
mov    -0x38(%rbp),%eax
mov    -0x28(%rbp),%ecx
mov    -0x20(%rbp),%edx
add    $0x17f,%edx
movslq %edx,%rsi
lea    0x2deb(%rip),%rdx
imul   (%rdx,%rsi,4),%ecx
add    %ecx,%eax
mov    -0x2c(%rbp),%ecx
mov    -0x20(%rbp),%edx
add    $0xff,%edx
movslq %edx,%rsi
lea    0x2dcf(%rip),%rdx
imul   (%rdx,%rsi,4),%ecx
add    %ecx,%eax
mov    -0x30(%rbp),%ecx
mov    -0x20(%rbp),%edx
add    $0x7f,%edx
movslq %edx,%rsi
lea    0x2db6(%rip),%rdx
imul   (%rdx,%rsi,4),%ecx
add    %ecx,%eax
mov    %eax,-0x38(%rbp)
mov    -0x38(%rbp),%eax
mov    $0x1000,%ecx
cltd
idiv   %ecx
mov    %eax,-0x34(%rbp)
mov    -0x34(%rbp),%ecx
shl    $0xc,%ecx
mov    -0x38(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x38(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x24(%rbp),%ecx
mov    -0x20(%rbp),%edx
add    $0x17f,%edx
movslq %edx,%rsi
lea    0x2d78(%rip),%rdx
imul   (%rdx,%rsi,4),%ecx
add    %ecx,%eax
mov    -0x28(%rbp),%ecx
mov    -0x20(%rbp),%edx
add    $0xff,%edx
movslq %edx,%rsi
lea    0x2d5c(%rip),%rdx
imul   (%rdx,%rsi,4),%ecx
add    %ecx,%eax
mov    -0x2c(%rbp),%ecx
mov    -0x20(%rbp),%edx
add    $0x7f,%edx
movslq %edx,%rsi
lea    0x2d43(%rip),%rdx
imul   (%rdx,%rsi,4),%ecx
add    %ecx,%eax
mov    -0x30(%rbp),%ecx
mov    -0x20(%rbp),%edx
sub    $0x1,%edx
movslq %edx,%rsi
lea    0x2d2a(%rip),%rdx
imul   (%rdx,%rsi,4),%ecx
add    %ecx,%eax
mov    %eax,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    $0x1000,%ecx
cltd
idiv   %ecx
mov    %edx,-0x34(%rbp)
cvtsi2sdl -0x34(%rbp),%xmm1
cvtsi2sdl -0x38(%rbp),%xmm2
cvtsi2sdl -0x3c(%rbp),%xmm3
cvtsi2sdl -0x40(%rbp),%xmm0
movsd  0xccf(%rip),%xmm4
mulsd  %xmm4,%xmm0
addsd  %xmm3,%xmm0
movsd  0xcbf(%rip),%xmm3
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
movsd  0xcaf(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xc9f(%rip),%xmm1
mulsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  0xc71(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    13c8 <odruv_+0x2c8>
jp     13c8 <odruv_+0x2c8>
mov    -0x24(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x24(%rbp)
mov    -0x28(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x28(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x30(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x30(%rbp)
jmp    1199 <odruv_+0x99>
jmp    13cd <odruv_+0x2cd>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1188 <odruv_+0x88>
mov    -0x34(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x38(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x8(%rax)
mov    -0x3c(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0xc(%rax)
mov    -0x40(%rbp),%ecx
mov    -0x8(%rbp),%rax
mov    %ecx,0x10(%rax)
xor    %eax,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<odruv_>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    %rdx,-0x20(%rsp)
mov    (%rsi),%eax
cmp    $0x80,%eax
mov    $0x80,%ecx
cmovl  %eax,%ecx
test   %ecx,%ecx
jle    136a <odruv_+0x26a>
mov    0xc(%rdi),%r8d
mov    0x8(%rdi),%r12d
mov    (%rdi),%ebp
mov    %rdi,-0x30(%rsp)
mov    0x4(%rdi),%edx
add    $0x1,%ecx
mov    $0x1,%edi
movsd  0xeb8(%rip),%xmm0
movsd  0xeb8(%rip),%xmm1
mov    %rcx,-0x28(%rsp)
jmp    11a2 <odruv_+0xa2>
nopw   0x0(%rax,%rax,1)
mov    -0x20(%rsp),%rcx
mov    -0x18(%rsp),%rdi
movsd  %xmm2,-0x8(%rcx,%rdi,8)
add    $0x1,%rdi
mov    -0x44(%rsp),%ebp
add    %r8d,%ebp
mov    -0x48(%rsp),%edx
add    %r8d,%edx
mov    -0x40(%rsp),%r12d
add    %r8d,%r12d
mov    -0x3c(%rsp),%ecx
add    %r8d,%ecx
mov    %ecx,%r8d
mov    -0x28(%rsp),%rcx
cmp    %rcx,%rdi
je     1340 <odruv_+0x240>
lea    0xe67(%rip),%rcx
mov    0x5fc(%rcx,%rdi,4),%eax
mov    0x3fc(%rcx,%rdi,4),%ebx
mov    -0x4(%rcx,%rdi,4),%r10d
mov    %rdi,-0x18(%rsp)
mov    0x1fc(%rcx,%rdi,4),%esi
mov    %edx,%ecx
imul   %ebx,%ecx
mov    %ebp,-0x44(%rsp)
mov    %ebp,%edi
imul   %eax,%edi
add    %ecx,%edi
mov    %r12d,%ebp
imul   %esi,%ebp
add    %edi,%ebp
mov    %r8d,%ecx
imul   %r10d,%ecx
add    %ebp,%ecx
lea    (%rax,%rax,1),%edi
mov    %rdi,-0x8(%rsp)
lea    (%rdi,%rbx,2),%edi
lea    (%rsi,%rsi,1),%r9d
mov    %rdi,-0x10(%rsp)
lea    (%rdi,%rsi,2),%edi
lea    (%rdi,%r10,2),%edi
mov    %edi,-0x34(%rsp)
mov    %edx,-0x48(%rsp)
imul   %eax,%edx
imul   %r8d,%esi
add    %edx,%esi
lea    (%r9,%rax,2),%edx
lea    (%rdx,%rbx,2),%edx
mov    %edx,-0x38(%rsp)
mov    %r12d,%edx
imul   %ebx,%edx
mov    %r12d,-0x40(%rsp)
mov    %r12d,%edi
imul   %eax,%edi
imul   %r8d,%ebx
add    %edi,%ebx
mov    %r8d,-0x3c(%rsp)
imul   %r8d,%eax
xor    %r8d,%r8d
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
lea    0xfff(%rax),%ebp
test   %eax,%eax
cmovns %eax,%ebp
mov    %ebp,%r9d
sar    $0xc,%r9d
and    $0xfffff000,%ebp
mov    %eax,%r12d
sub    %ebp,%r12d
mov    %ebx,%ebp
add    %r9d,%ebp
lea    0xfff(%rbx,%r9,1),%edi
cmovns %ebp,%edi
mov    %edi,%r10d
sar    $0xc,%r10d
and    $0xfffff000,%edi
mov    %r9d,%r13d
sub    %edi,%r13d
add    %ebx,%r13d
mov    %rdx,%r14
lea    (%rdx,%rsi,1),%edi
mov    %edi,%ebp
add    %r10d,%ebp
lea    0xfff(%r10,%rdi,1),%edx
cmovns %ebp,%edx
mov    %edx,%r15d
sar    $0xc,%r15d
and    $0xfffff000,%edx
mov    %r10d,%ebp
sub    %edx,%ebp
add    %edi,%ebp
mov    %ecx,%r11d
add    %r15d,%r11d
lea    0xfff(%rcx,%r15,1),%edx
cmovns %r11d,%edx
and    $0xfffff000,%edx
sub    %edx,%r11d
xorps  %xmm3,%xmm3
cvtsi2sd %r11d,%xmm3
xorps  %xmm4,%xmm4
cvtsi2sd %ebp,%xmm4
xorps  %xmm5,%xmm5
cvtsi2sd %r13d,%xmm5
xorps  %xmm2,%xmm2
cvtsi2sd %r12d,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm5,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm4,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm2
ucomisd %xmm1,%xmm2
jne    1160 <odruv_+0x60>
jp     1160 <odruv_+0x60>
add    $0x2,%r8d
add    -0x34(%rsp),%ecx
add    -0x38(%rsp),%esi
add    -0x10(%rsp),%ebx
add    -0x8(%rsp),%eax
mov    %r14,%rdx
jmp    1250 <odruv_+0x150>
shl    $0xc,%r15d
mov    %r10d,%ecx
sub    %r15d,%ecx
add    %ecx,%r14d
add    %esi,%r14d
shl    $0xc,%r10d
mov    %r9d,%ecx
sub    %r10d,%ecx
add    %ebx,%ecx
shl    $0xc,%r9d
sub    %r9d,%eax
mov    -0x30(%rsp),%rdi
jmp    136a <odruv_+0x26a>
mov    %r11d,(%rdi)
mov    %r14d,0x4(%rdi)
mov    %ecx,0x8(%rdi)
mov    %eax,0xc(%rdi)
xor    %eax,%eax
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@odruv_.mm = internal global [512 x i32] [i32 494, i32 2637, i32 255, i32 2008, i32 1253, i32 3344, i32 4084, i32 1739, i32 3143, i32 3468, i32 688, i32 1657, i32 1238, i32 3166, i32 1292, i32 3422, i32 1270, i32 2016, i32 154, i32 2862, i32 697, i32 1706, i32 491, i32 931, i32 1444, i32 444, i32 3577, i32 3944, i32 2184, i32 1661, i32 3482, i32 657, i32 3023, i32 3618, i32 1267, i32 1828, i32 164, i32 3798, i32 3087, i32 2400, i32 2870, i32 3876, i32 1905, i32 1593, i32 1797, i32 1234, i32 3460, i32 328, i32 2861, i32 1950, i32 617, i32 2070, i32 3331, i32 769, i32 1558, i32 2412, i32 2800, i32 189, i32 287, i32 2045, i32 1227, i32 2838, i32 209, i32 2770, i32 3654, i32 3993, i32 192, i32 2253, i32 3491, i32 2889, i32 2857, i32 2094, i32 1818, i32 688, i32 1407, i32 634, i32 3231, i32 815, i32 3524, i32 1914, i32 516, i32 164, i32 303, i32 2144, i32 3480, i32 119, i32 3357, i32 837, i32 2826, i32 2332, i32 2089, i32 3780, i32 1700, i32 3712, i32 150, i32 2000, i32 3375, i32 1621, i32 3090, i32 3765, i32 1149, i32 3146, i32 33, i32 3082, i32 2741, i32 359, i32 3316, i32 1749, i32 185, i32 2784, i32 2202, i32 2199, i32 1364, i32 1244, i32 2020, i32 3160, i32 2785, i32 2772, i32 1217, i32 1822, i32 1245, i32 2252, i32 3904, i32 2774, i32 997, i32 2573, i32 1148, i32 545, i32 322, i32 789, i32 1440, i32 752, i32 2859, i32 123, i32 1848, i32 643, i32 2405, i32 2638, i32 2344, i32 46, i32 3814, i32 913, i32 3649, i32 339, i32 3808, i32 822, i32 2832, i32 3078, i32 3633, i32 2970, i32 637, i32 2249, i32 2081, i32 4019, i32 1478, i32 242, i32 481, i32 2075, i32 4058, i32 622, i32 3376, i32 812, i32 234, i32 641, i32 4005, i32 1122, i32 3135, i32 2640, i32 2302, i32 40, i32 1832, i32 2247, i32 2034, i32 2637, i32 1287, i32 1691, i32 496, i32 1597, i32 2394, i32 2584, i32 1843, i32 336, i32 1472, i32 2407, i32 433, i32 2096, i32 1761, i32 2810, i32 566, i32 442, i32 41, i32 1238, i32 1086, i32 603, i32 840, i32 3168, i32 1499, i32 1084, i32 3438, i32 2408, i32 1589, i32 2391, i32 288, i32 26, i32 512, i32 1456, i32 171, i32 1677, i32 2657, i32 2270, i32 2587, i32 2961, i32 1970, i32 1817, i32 676, i32 1410, i32 3723, i32 2803, i32 3185, i32 184, i32 663, i32 499, i32 3784, i32 1631, i32 1925, i32 3912, i32 1398, i32 1349, i32 1441, i32 2224, i32 2411, i32 1907, i32 3192, i32 2786, i32 382, i32 37, i32 759, i32 2948, i32 1862, i32 3802, i32 2423, i32 2051, i32 2295, i32 1332, i32 1832, i32 2405, i32 3638, i32 3661, i32 327, i32 3660, i32 716, i32 1842, i32 3987, i32 1368, i32 1848, i32 2366, i32 2508, i32 3754, i32 1766, i32 3572, i32 2893, i32 307, i32 1297, i32 3966, i32 758, i32 2598, i32 3406, i32 2922, i32 1038, i32 2934, i32 2091, i32 2451, i32 1580, i32 1958, i32 2055, i32 1507, i32 1078, i32 3273, i32 17, i32 854, i32 2916, i32 3971, i32 2889, i32 3831, i32 2621, i32 1541, i32 893, i32 736, i32 3992, i32 787, i32 2125, i32 2364, i32 2460, i32 257, i32 1574, i32 3912, i32 1216, i32 3248, i32 3401, i32 2124, i32 2762, i32 149, i32 2245, i32 166, i32 466, i32 4018, i32 1399, i32 190, i32 2879, i32 153, i32 2320, i32 18, i32 712, i32 2159, i32 2318, i32 2091, i32 3443, i32 1510, i32 449, i32 1956, i32 2201, i32 3137, i32 3399, i32 1321, i32 2271, i32 3667, i32 2703, i32 629, i32 2365, i32 2431, i32 1113, i32 3922, i32 2554, i32 184, i32 2099, i32 3228, i32 4012, i32 1921, i32 3452, i32 3901, i32 572, i32 3309, i32 3171, i32 817, i32 3039, i32 1696, i32 1256, i32 3715, i32 2077, i32 3019, i32 1497, i32 1101, i32 717, i32 51, i32 981, i32 1978, i32 1813, i32 3881, i32 76, i32 3846, i32 3694, i32 1682, i32 124, i32 1660, i32 3997, i32 479, i32 1141, i32 886, i32 3514, i32 1301, i32 3604, i32 1888, i32 1836, i32 1990, i32 2058, i32 692, i32 1194, i32 20, i32 3285, i32 2046, i32 2107, i32 3508, i32 3525, i32 3801, i32 2549, i32 1145, i32 2253, i32 305, i32 3301, i32 1065, i32 3133, i32 2913, i32 3285, i32 1241, i32 1197, i32 3729, i32 2501, i32 1673, i32 541, i32 2753, i32 949, i32 2361, i32 1165, i32 4081, i32 2725, i32 3305, i32 3069, i32 3617, i32 3733, i32 409, i32 2157, i32 1361, i32 3973, i32 1865, i32 2525, i32 1409, i32 3445, i32 3577, i32 77, i32 3761, i32 2149, i32 1449, i32 3005, i32 225, i32 85, i32 3673, i32 3117, i32 3089, i32 1349, i32 2057, i32 413, i32 65, i32 1845, i32 697, i32 3085, i32 3441, i32 1573, i32 3689, i32 2941, i32 929, i32 533, i32 2841, i32 4077, i32 721, i32 2821, i32 2249, i32 2397, i32 2817, i32 245, i32 1913, i32 1997, i32 3121, i32 997, i32 1833, i32 2877, i32 1633, i32 981, i32 2009, i32 941, i32 2449, i32 197, i32 2441, i32 285, i32 1473, i32 2741, i32 3129, i32 909, i32 2801, i32 421, i32 4073, i32 2813, i32 2337, i32 1429, i32 1177, i32 1901, i32 81, i32 1669, i32 2633, i32 2269, i32 129, i32 1141, i32 249, i32 3917, i32 2481, i32 3941, i32 2217, i32 2749, i32 3041, i32 1877, i32 345, i32 2861, i32 1809, i32 3141, i32 2825, i32 157, i32 2881, i32 3637, i32 1465, i32 2829, i32 2161, i32 3365, i32 361, i32 2685, i32 3745, i32 2325, i32 3609, i32 3821, i32 3537, i32 517, i32 3017, i32 2141, i32 1537]
define i32 @odruv_(i32* %0, i32* %1, double* %2) {
%4 = alloca i32*
%5 = alloca i32*
%6 = alloca double*
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
store i32* %0, i32** %4
store i32* %1, i32** %5
store double* %2, double** %6
%17 = load i32*, i32** %4
%18 = getelementptr inbounds i32, i32* %17, i32 -1
store i32* %18, i32** %4
%19 = load double*, double** %6
%20 = getelementptr inbounds double, double* %19, i32 -1
store double* %20, double** %6
%21 = load i32*, i32** %4
%22 = getelementptr inbounds i32, i32* %21, i64 1
%23 = load i32, i32* %22
store i32 %23, i32* %9
%24 = load i32*, i32** %4
%25 = getelementptr inbounds i32, i32* %24, i64 2
%26 = load i32, i32* %25
store i32 %26, i32* %10
%27 = load i32*, i32** %4
%28 = getelementptr inbounds i32, i32* %27, i64 3
%29 = load i32, i32* %28
store i32 %29, i32* %11
%30 = load i32*, i32** %4
%31 = getelementptr inbounds i32, i32* %30, i64 4
%32 = load i32, i32* %31
store i32 %32, i32* %12
%33 = load i32*, i32** %5
%34 = load i32, i32* %33
%35 = icmp slt i32 %34, 128
br i1 %35, label %36, label %39
36: ; preds = %3
%37 = load i32*, i32** %5
%38 = load i32, i32* %37
br label %40
39: ; preds = %3
br label %40
40: ; preds = %39, %36
%41 = phi i32 [ %38, %36 ], [ 128, %39 ]
store i32 %41, i32* %7
store i32 1, i32* %8
br label %42
42: ; preds = %182, %40
%43 = load i32, i32* %8
%44 = load i32, i32* %7
%45 = icmp sle i32 %43, %44
br i1 %45, label %46, label %185
46: ; preds = %42
br label %47
47: ; preds = %172, %46
%48 = load i32, i32* %12
%49 = load i32, i32* %8
%50 = add nsw i32 %49, 383
%51 = sext i32 %50 to i64
%52 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %51
%53 = load i32, i32* %52
%54 = mul nsw i32 %48, %53
store i32 %54, i32* %16
%55 = load i32, i32* %16
%56 = sdiv i32 %55, 4096
store i32 %56, i32* %15
%57 = load i32, i32* %15
%58 = shl i32 %57, 12
%59 = load i32, i32* %16
%60 = sub nsw i32 %59, %58
store i32 %60, i32* %16
%61 = load i32, i32* %15
%62 = load i32, i32* %11
%63 = load i32, i32* %8
%64 = add nsw i32 %63, 383
%65 = sext i32 %64 to i64
%66 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %65
%67 = load i32, i32* %66
%68 = mul nsw i32 %62, %67
%69 = add nsw i32 %61, %68
%70 = load i32, i32* %12
%71 = load i32, i32* %8
%72 = add nsw i32 %71, 255
%73 = sext i32 %72 to i64
%74 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %73
%75 = load i32, i32* %74
%76 = mul nsw i32 %70, %75
%77 = add nsw i32 %69, %76
store i32 %77, i32* %15
%78 = load i32, i32* %15
%79 = sdiv i32 %78, 4096
store i32 %79, i32* %14
%80 = load i32, i32* %14
%81 = shl i32 %80, 12
%82 = load i32, i32* %15
%83 = sub nsw i32 %82, %81
store i32 %83, i32* %15
%84 = load i32, i32* %14
%85 = load i32, i32* %10
%86 = load i32, i32* %8
%87 = add nsw i32 %86, 383
%88 = sext i32 %87 to i64
%89 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %88
%90 = load i32, i32* %89
%91 = mul nsw i32 %85, %90
%92 = add nsw i32 %84, %91
%93 = load i32, i32* %11
%94 = load i32, i32* %8
%95 = add nsw i32 %94, 255
%96 = sext i32 %95 to i64
%97 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %96
%98 = load i32, i32* %97
%99 = mul nsw i32 %93, %98
%100 = add nsw i32 %92, %99
%101 = load i32, i32* %12
%102 = load i32, i32* %8
%103 = add nsw i32 %102, 127
%104 = sext i32 %103 to i64
%105 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %104
%106 = load i32, i32* %105
%107 = mul nsw i32 %101, %106
%108 = add nsw i32 %100, %107
store i32 %108, i32* %14
%109 = load i32, i32* %14
%110 = sdiv i32 %109, 4096
store i32 %110, i32* %13
%111 = load i32, i32* %13
%112 = shl i32 %111, 12
%113 = load i32, i32* %14
%114 = sub nsw i32 %113, %112
store i32 %114, i32* %14
%115 = load i32, i32* %13
%116 = load i32, i32* %9
%117 = load i32, i32* %8
%118 = add nsw i32 %117, 383
%119 = sext i32 %118 to i64
%120 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %119
%121 = load i32, i32* %120
%122 = mul nsw i32 %116, %121
%123 = add nsw i32 %115, %122
%124 = load i32, i32* %10
%125 = load i32, i32* %8
%126 = add nsw i32 %125, 255
%127 = sext i32 %126 to i64
%128 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %127
%129 = load i32, i32* %128
%130 = mul nsw i32 %124, %129
%131 = add nsw i32 %123, %130
%132 = load i32, i32* %11
%133 = load i32, i32* %8
%134 = add nsw i32 %133, 127
%135 = sext i32 %134 to i64
%136 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %135
%137 = load i32, i32* %136
%138 = mul nsw i32 %132, %137
%139 = add nsw i32 %131, %138
%140 = load i32, i32* %12
%141 = load i32, i32* %8
%142 = sub nsw i32 %141, 1
%143 = sext i32 %142 to i64
%144 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %143
%145 = load i32, i32* %144
%146 = mul nsw i32 %140, %145
%147 = add nsw i32 %139, %146
store i32 %147, i32* %13
%148 = load i32, i32* %13
%149 = srem i32 %148, 4096
store i32 %149, i32* %13
%150 = load i32, i32* %13
%151 = sitofp i32 %150 to double
%152 = load i32, i32* %14
%153 = sitofp i32 %152 to double
%154 = load i32, i32* %15
%155 = sitofp i32 %154 to double
%156 = load i32, i32* %16
%157 = sitofp i32 %156 to double
%158 = call double @llvm.fmuladd.f64(double %157, double 0x3F30000000000000, double %155)
%159 = call double @llvm.fmuladd.f64(double %158, double 0x3F30000000000000, double %153)
%160 = call double @llvm.fmuladd.f64(double %159, double 0x3F30000000000000, double %151)
%161 = fmul double %160, 0x3F30000000000000
%162 = load double*, double** %6
%163 = load i32, i32* %8
%164 = sext i32 %163 to i64
%165 = getelementptr inbounds double, double* %162, i64 %164
store double %161, double* %165
%166 = load double*, double** %6
%167 = load i32, i32* %8
%168 = sext i32 %167 to i64
%169 = getelementptr inbounds double, double* %166, i64 %168
%170 = load double, double* %169
%171 = fcmp oeq double %170, 1.000000e+00
br i1 %171, label %172, label %181
172: ; preds = %47
%173 = load i32, i32* %9
%174 = add nsw i32 %173, 2
store i32 %174, i32* %9
%175 = load i32, i32* %10
%176 = add nsw i32 %175, 2
store i32 %176, i32* %10
%177 = load i32, i32* %11
%178 = add nsw i32 %177, 2
store i32 %178, i32* %11
%179 = load i32, i32* %12
%180 = add nsw i32 %179, 2
store i32 %180, i32* %12
br label %47
181: ; preds = %47
br label %182
182: ; preds = %181
%183 = load i32, i32* %8
%184 = add nsw i32 %183, 1
store i32 %184, i32* %8
br label %42
185: ; preds = %42
%186 = load i32, i32* %13
%187 = load i32*, i32** %4
%188 = getelementptr inbounds i32, i32* %187, i64 1
store i32 %186, i32* %188
%189 = load i32, i32* %14
%190 = load i32*, i32** %4
%191 = getelementptr inbounds i32, i32* %190, i64 2
store i32 %189, i32* %191
%192 = load i32, i32* %15
%193 = load i32*, i32** %4
%194 = getelementptr inbounds i32, i32* %193, i64 3
store i32 %192, i32* %194
%195 = load i32, i32* %16
%196 = load i32*, i32** %4
%197 = getelementptr inbounds i32, i32* %196, i64 4
store i32 %195, i32* %197
ret i32 0
}

LLVM IR (-O2):
@odruv_.mm = internal unnamed_addr constant [512 x i32] [i32 494, i32 2637, i32 255, i32 2008, i32 1253, i32 3344, i32 4084, i32 1739, i32 3143, i32 3468, i32 688, i32 1657, i32 1238, i32 3166, i32 1292, i32 3422, i32 1270, i32 2016, i32 154, i32 2862, i32 697, i32 1706, i32 491, i32 931, i32 1444, i32 444, i32 3577, i32 3944, i32 2184, i32 1661, i32 3482, i32 657, i32 3023, i32 3618, i32 1267, i32 1828, i32 164, i32 3798, i32 3087, i32 2400, i32 2870, i32 3876, i32 1905, i32 1593, i32 1797, i32 1234, i32 3460, i32 328, i32 2861, i32 1950, i32 617, i32 2070, i32 3331, i32 769, i32 1558, i32 2412, i32 2800, i32 189, i32 287, i32 2045, i32 1227, i32 2838, i32 209, i32 2770, i32 3654, i32 3993, i32 192, i32 2253, i32 3491, i32 2889, i32 2857, i32 2094, i32 1818, i32 688, i32 1407, i32 634, i32 3231, i32 815, i32 3524, i32 1914, i32 516, i32 164, i32 303, i32 2144, i32 3480, i32 119, i32 3357, i32 837, i32 2826, i32 2332, i32 2089, i32 3780, i32 1700, i32 3712, i32 150, i32 2000, i32 3375, i32 1621, i32 3090, i32 3765, i32 1149, i32 3146, i32 33, i32 3082, i32 2741, i32 359, i32 3316, i32 1749, i32 185, i32 2784, i32 2202, i32 2199, i32 1364, i32 1244, i32 2020, i32 3160, i32 2785, i32 2772, i32 1217, i32 1822, i32 1245, i32 2252, i32 3904, i32 2774, i32 997, i32 2573, i32 1148, i32 545, i32 322, i32 789, i32 1440, i32 752, i32 2859, i32 123, i32 1848, i32 643, i32 2405, i32 2638, i32 2344, i32 46, i32 3814, i32 913, i32 3649, i32 339, i32 3808, i32 822, i32 2832, i32 3078, i32 3633, i32 2970, i32 637, i32 2249, i32 2081, i32 4019, i32 1478, i32 242, i32 481, i32 2075, i32 4058, i32 622, i32 3376, i32 812, i32 234, i32 641, i32 4005, i32 1122, i32 3135, i32 2640, i32 2302, i32 40, i32 1832, i32 2247, i32 2034, i32 2637, i32 1287, i32 1691, i32 496, i32 1597, i32 2394, i32 2584, i32 1843, i32 336, i32 1472, i32 2407, i32 433, i32 2096, i32 1761, i32 2810, i32 566, i32 442, i32 41, i32 1238, i32 1086, i32 603, i32 840, i32 3168, i32 1499, i32 1084, i32 3438, i32 2408, i32 1589, i32 2391, i32 288, i32 26, i32 512, i32 1456, i32 171, i32 1677, i32 2657, i32 2270, i32 2587, i32 2961, i32 1970, i32 1817, i32 676, i32 1410, i32 3723, i32 2803, i32 3185, i32 184, i32 663, i32 499, i32 3784, i32 1631, i32 1925, i32 3912, i32 1398, i32 1349, i32 1441, i32 2224, i32 2411, i32 1907, i32 3192, i32 2786, i32 382, i32 37, i32 759, i32 2948, i32 1862, i32 3802, i32 2423, i32 2051, i32 2295, i32 1332, i32 1832, i32 2405, i32 3638, i32 3661, i32 327, i32 3660, i32 716, i32 1842, i32 3987, i32 1368, i32 1848, i32 2366, i32 2508, i32 3754, i32 1766, i32 3572, i32 2893, i32 307, i32 1297, i32 3966, i32 758, i32 2598, i32 3406, i32 2922, i32 1038, i32 2934, i32 2091, i32 2451, i32 1580, i32 1958, i32 2055, i32 1507, i32 1078, i32 3273, i32 17, i32 854, i32 2916, i32 3971, i32 2889, i32 3831, i32 2621, i32 1541, i32 893, i32 736, i32 3992, i32 787, i32 2125, i32 2364, i32 2460, i32 257, i32 1574, i32 3912, i32 1216, i32 3248, i32 3401, i32 2124, i32 2762, i32 149, i32 2245, i32 166, i32 466, i32 4018, i32 1399, i32 190, i32 2879, i32 153, i32 2320, i32 18, i32 712, i32 2159, i32 2318, i32 2091, i32 3443, i32 1510, i32 449, i32 1956, i32 2201, i32 3137, i32 3399, i32 1321, i32 2271, i32 3667, i32 2703, i32 629, i32 2365, i32 2431, i32 1113, i32 3922, i32 2554, i32 184, i32 2099, i32 3228, i32 4012, i32 1921, i32 3452, i32 3901, i32 572, i32 3309, i32 3171, i32 817, i32 3039, i32 1696, i32 1256, i32 3715, i32 2077, i32 3019, i32 1497, i32 1101, i32 717, i32 51, i32 981, i32 1978, i32 1813, i32 3881, i32 76, i32 3846, i32 3694, i32 1682, i32 124, i32 1660, i32 3997, i32 479, i32 1141, i32 886, i32 3514, i32 1301, i32 3604, i32 1888, i32 1836, i32 1990, i32 2058, i32 692, i32 1194, i32 20, i32 3285, i32 2046, i32 2107, i32 3508, i32 3525, i32 3801, i32 2549, i32 1145, i32 2253, i32 305, i32 3301, i32 1065, i32 3133, i32 2913, i32 3285, i32 1241, i32 1197, i32 3729, i32 2501, i32 1673, i32 541, i32 2753, i32 949, i32 2361, i32 1165, i32 4081, i32 2725, i32 3305, i32 3069, i32 3617, i32 3733, i32 409, i32 2157, i32 1361, i32 3973, i32 1865, i32 2525, i32 1409, i32 3445, i32 3577, i32 77, i32 3761, i32 2149, i32 1449, i32 3005, i32 225, i32 85, i32 3673, i32 3117, i32 3089, i32 1349, i32 2057, i32 413, i32 65, i32 1845, i32 697, i32 3085, i32 3441, i32 1573, i32 3689, i32 2941, i32 929, i32 533, i32 2841, i32 4077, i32 721, i32 2821, i32 2249, i32 2397, i32 2817, i32 245, i32 1913, i32 1997, i32 3121, i32 997, i32 1833, i32 2877, i32 1633, i32 981, i32 2009, i32 941, i32 2449, i32 197, i32 2441, i32 285, i32 1473, i32 2741, i32 3129, i32 909, i32 2801, i32 421, i32 4073, i32 2813, i32 2337, i32 1429, i32 1177, i32 1901, i32 81, i32 1669, i32 2633, i32 2269, i32 129, i32 1141, i32 249, i32 3917, i32 2481, i32 3941, i32 2217, i32 2749, i32 3041, i32 1877, i32 345, i32 2861, i32 1809, i32 3141, i32 2825, i32 157, i32 2881, i32 3637, i32 1465, i32 2829, i32 2161, i32 3365, i32 361, i32 2685, i32 3745, i32 2325, i32 3609, i32 3821, i32 3537, i32 517, i32 3017, i32 2141, i32 1537]
define i32 @odruv_(i32* nocapture %0, i32* nocapture %1, double* nocapture writeonly %2) {
%4 = getelementptr inbounds double, double* %2, i64 -1
%5 = getelementptr inbounds i32, i32* %0, i64 1
%6 = getelementptr inbounds i32, i32* %0, i64 2
%7 = getelementptr inbounds i32, i32* %0, i64 3
%8 = load i32, i32* %1
%9 = icmp slt i32 %8, 128
%10 = select i1 %9, i32 %8, i32 128
%11 = icmp slt i32 %10, 1
br i1 %11, label %89, label %12
12: ; preds = %3
%13 = load i32, i32* %7
%14 = load i32, i32* %6
%15 = load i32, i32* %5
%16 = load i32, i32* %0
%17 = add nuw nsw i32 %10, 1
%18 = zext i32 %17 to i64
br label %19
19: ; preds = %12, %85
%20 = phi i64 [ 1, %12 ], [ %87, %85 ]
%21 = phi i32 [ %13, %12 ], [ %41, %85 ]
%22 = phi i32 [ %14, %12 ], [ %40, %85 ]
%23 = phi i32 [ %15, %12 ], [ %39, %85 ]
%24 = phi i32 [ %16, %12 ], [ %38, %85 ]
%25 = add nuw nsw i64 %20, 383
%26 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %25
%27 = load i32, i32* %26
%28 = add nuw nsw i64 %20, 255
%29 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %28
%30 = load i32, i32* %29
%31 = add nuw nsw i64 %20, 127
%32 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %31
%33 = load i32, i32* %32
%34 = add nsw i64 %20, -1
%35 = getelementptr inbounds [512 x i32], [512 x i32]* @odruv_.mm, i64 0, i64 %34
%36 = load i32, i32* %35
br label %37
37: ; preds = %19, %80
%38 = phi i32 [ %81, %80 ], [ %24, %19 ]
%39 = phi i32 [ %82, %80 ], [ %23, %19 ]
%40 = phi i32 [ %83, %80 ], [ %22, %19 ]
%41 = phi i32 [ %84, %80 ], [ %21, %19 ]
%42 = mul nsw i32 %27, %41
%43 = sdiv i32 %42, 4096
%44 = mul i32 %43, -4096
%45 = add i32 %44, %42
%46 = mul nsw i32 %27, %40
%47 = add nsw i32 %43, %46
%48 = mul nsw i32 %30, %41
%49 = add nsw i32 %47, %48
%50 = sdiv i32 %49, 4096
%51 = mul i32 %50, -4096
%52 = add i32 %51, %49
%53 = mul nsw i32 %27, %39
%54 = mul nsw i32 %30, %40
%55 = mul nsw i32 %33, %41
%56 = add i32 %54, %53
%57 = add i32 %56, %55
%58 = add i32 %57, %50
%59 = sdiv i32 %58, 4096
%60 = mul i32 %59, -4096
%61 = add i32 %60, %58
%62 = mul nsw i32 %27, %38
%63 = mul nsw i32 %30, %39
%64 = mul nsw i32 %33, %40
%65 = mul nsw i32 %36, %41
%66 = add i32 %63, %62
%67 = add i32 %66, %64
%68 = add i32 %67, %65
%69 = add i32 %68, %59
%70 = srem i32 %69, 4096
%71 = sitofp i32 %70 to double
%72 = sitofp i32 %61 to double
%73 = sitofp i32 %52 to double
%74 = sitofp i32 %45 to double
%75 = tail call double @llvm.fmuladd.f64(double %74, double 0x3F30000000000000, double %73)
%76 = tail call double @llvm.fmuladd.f64(double %75, double 0x3F30000000000000, double %72)
%77 = tail call double @llvm.fmuladd.f64(double %76, double 0x3F30000000000000, double %71)
%78 = fmul double %77, 0x3F30000000000000
%79 = fcmp oeq double %78, 1.000000e+00
br i1 %79, label %80, label %85
80: ; preds = %37
%81 = add nsw i32 %38, 2
%82 = add nsw i32 %39, 2
%83 = add nsw i32 %40, 2
%84 = add nsw i32 %41, 2
br label %37
85: ; preds = %37
%86 = getelementptr inbounds double, double* %4, i64 %20
store double %78, double* %86
%87 = add nuw nsw i64 %20, 1
%88 = icmp eq i64 %87, %18
br i1 %88, label %89, label %19
89: ; preds = %85, %3
%90 = phi i32 [ undef, %3 ], [ %70, %85 ]
%91 = phi i32 [ undef, %3 ], [ %61, %85 ]
%92 = phi i32 [ undef, %3 ], [ %52, %85 ]
%93 = phi i32 [ undef, %3 ], [ %45, %85 ]
store i32 %90, i32* %0
store i32 %91, i32* %5
store i32 %92, i32* %6
store i32 %93, i32* %7
ret i32 0
}