#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef int uint32_t;
typedef long long int64_t;
typedef int int32_t;

/* Variables and functions */
int32_t dct(int32_t *dctBlock) {
  int64_t shft0LL;
  int64_t round0LL;
  int64_t wide0LL;
  int32_t shft1L;
  int32_t round1L;
  int32_t shft2L;
  int32_t round2L;
  uint32_t shft2UL;
  int32_t x8;
  int32_t x7;
  int32_t x6;
  int32_t x5;
  int32_t x4;
  int32_t x3;
  int32_t x2;
  int32_t x1;
  int32_t x0;
  int32_t col;
  int32_t row;
  int32_t D2012;
  int32_t D2011;
  int32_t D2010;
  int32_t D2009;
  int32_t D2008;
  int32_t D2007;
  int32_t D2006;
  int32_t D2005;
  int32_t D2004;
  int32_t D2003;
  int32_t D2002;
  int32_t D2001;
  int32_t D2000;
  int32_t *D1999;
  int32_t *D1998;
  int32_t *D1997;
  int32_t *D1996;
  int32_t *D1995;
  int32_t *D1994;
  int32_t *D1993;
  int32_t D1992;
  int32_t D1991;
  int32_t D1990;
  int32_t D1989;
  int32_t D1988;
  int32_t D1987;
  int32_t D1986;
  int32_t D1985;
  int32_t D1984;
  int32_t D1983;
  int32_t D1982;
  int32_t D1981;
  int32_t D1980;
  int32_t *D1979;
  uint32_t D1978;
  uint32_t row_0;
bb2:
  row = 0;
  goto bb4;
bb3:
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  x0 = D1979[0];
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  x1 = D1979[1];
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  x2 = D1979[2];
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  x3 = D1979[3];
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  x4 = D1979[4];
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  x5 = D1979[5];
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  x6 = D1979[6];
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  x7 = D1979[7];
  x8 = x7 + x0;
  x0 = x0 - x7;
  x7 = x1 + x6;
  x1 = x1 - x6;
  x6 = x2 + x5;
  x2 = x2 - x5;
  x5 = x3 + x4;
  x3 = x3 - x4;
  x4 = x8 + x5;
  x8 = x8 - x5;
  x5 = x7 + x6;
  x7 = x7 - x6;
  D1980 = x1 + x2;
  wide0LL = (int64_t)D1980 * 2106220352LL;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  x6 = (int32_t)shft0LL;
  wide0LL = (int64_t)x2 * -1262586814;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D1981 = (int32_t)shft0LL;
  round2L = x6 + 1;
  shft2L = round2L >> 1;
  x2 = D1981 + shft2L;
  wide0LL = (int64_t)x1 * -1687267075;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D1982 = (int32_t)shft0LL;
  x1 = D1982 + x6;
  D1983 = x0 + x3;
  wide0LL = (int64_t)D1983 * 1785567396LL;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  x6 = (int32_t)shft0LL;
  wide0LL = (int64_t)x3 * -1489322693;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D1984 = (int32_t)shft0LL;
  round2L = x6 + 1;
  shft2L = round2L >> 1;
  x3 = D1984 + shft2L;
  wide0LL = (int64_t)x0 * -592489406;
  round0LL = wide0LL + 268435456LL;
  shft0LL = round0LL >> 29;
  D1985 = (int32_t)shft0LL;
  round1L = D1985 + 1;
  shft1L = round1L >> 1;
  x0 = shft1L + x6;
  x6 = x4 + x5;
  x4 = x4 - x5;
  round1L = x0 + 1;
  shft1L = round1L >> 1;
  x5 = shft1L + x2;
  round1L = x0 + 1;
  shft1L = round1L >> 1;
  x0 = shft1L - x2;
  round2L = x1 + 1;
  shft2L = round2L >> 1;
  x2 = x3 + shft2L;
  round2L = x1 + 1;
  shft2L = round2L >> 1;
  x3 = x3 - shft2L;
  D1986 = x7 + x8;
  wide0LL = (int64_t)D1986 * 1162209775LL;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  x1 = (int32_t)shft0LL;
  wide0LL = (int64_t)x7 * -1984016189;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D1987 = (int32_t)shft0LL;
  round2L = x1 + 1;
  shft2L = round2L >> 1;
  x7 = D1987 + shft2L;
  wide0LL = (int64_t)x8 * 1643612827LL;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D1988 = (int32_t)shft0LL;
  x8 = D1988 + x1;
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  D1979[0] = x6;
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  D1979[4] = x4;
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  round1L = x8 + 1;
  shft1L = round1L >> 1;
  D1979[2] = shft1L;
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  D1979[6] = x7;
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  D1989 = x2 - x5;
  D1979[7] = D1989;
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  D1990 = x2 + x5;
  D1979[1] = D1990;
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  wide0LL = (int64_t)x3 * 1518500250LL;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D1991 = (int32_t)shft0LL;
  D1979[3] = D1991;
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  wide0LL = (int64_t)x0 * 1518500250LL;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D1992 = (int32_t)shft0LL;
  D1979[5] = D1992;
  row = row + 1;
bb4:
  if (row <= 7)
    goto bb3;
  else
    goto bb5;
bb5:
  col = 0;
  goto bb7;
bb6:
  x0 = dctBlock[col];
  D1993 = dctBlock + (32 / sizeof(*dctBlock));
  x1 = D1993[col];
  D1994 = dctBlock + (64 / sizeof(*dctBlock));
  x2 = D1994[col];
  D1995 = dctBlock + (96 / sizeof(*dctBlock));
  x3 = D1995[col];
  D1996 = dctBlock + (128 / sizeof(*dctBlock));
  x4 = D1996[col];
  D1997 = dctBlock + (160 / sizeof(*dctBlock));
  x5 = D1997[col];
  D1998 = dctBlock + (192 / sizeof(*dctBlock));
  x6 = D1998[col];
  D1999 = dctBlock + (224 / sizeof(*dctBlock));
  x7 = D1999[col];
  x8 = x7 + x0;
  x0 = x0 - x7;
  x7 = x1 + x6;
  x1 = x1 - x6;
  x6 = x2 + x5;
  x2 = x2 - x5;
  x5 = x3 + x4;
  x3 = x3 - x4;
  x4 = x8 + x5;
  x8 = x8 - x5;
  x5 = x7 + x6;
  x7 = x7 - x6;
  D2000 = x1 + x2;
  wide0LL = (int64_t)D2000 * 2106220352LL;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  x6 = (int32_t)shft0LL;
  wide0LL = (int64_t)x2 * -1262586814;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D2001 = (int32_t)shft0LL;
  round2L = x6 + 1;
  shft2L = round2L >> 1;
  x2 = D2001 + shft2L;
  wide0LL = (int64_t)x1 * -1687267075;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D2002 = (int32_t)shft0LL;
  x1 = D2002 + x6;
  D2003 = x0 + x3;
  wide0LL = (int64_t)D2003 * 1785567396LL;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  x6 = (int32_t)shft0LL;
  wide0LL = (int64_t)x3 * -1489322693;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D2004 = (int32_t)shft0LL;
  round2L = x6 + 1;
  shft2L = round2L >> 1;
  x3 = D2004 + shft2L;
  wide0LL = (int64_t)x0 * -592489406;
  round0LL = wide0LL + 268435456LL;
  shft0LL = round0LL >> 29;
  D2005 = (int32_t)shft0LL;
  round1L = D2005 + 1;
  shft1L = round1L >> 1;
  x0 = shft1L + x6;
  x6 = x4 + x5;
  x4 = x4 - x5;
  round1L = x0 + 1;
  shft1L = round1L >> 1;
  x5 = shft1L + x2;
  round1L = x0 + 1;
  shft1L = round1L >> 1;
  x0 = shft1L - x2;
  round2L = x1 + 1;
  shft2L = round2L >> 1;
  x2 = x3 + shft2L;
  round2L = x1 + 1;
  shft2L = round2L >> 1;
  x3 = x3 - shft2L;
  D2006 = x7 + x8;
  wide0LL = (int64_t)D2006 * 1162209775LL;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  x1 = (int32_t)shft0LL;
  wide0LL = (int64_t)x7 * -1984016189;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D2007 = (int32_t)shft0LL;
  round2L = x1 + 1;
  shft2L = round2L >> 1;
  x7 = D2007 + shft2L;
  wide0LL = (int64_t)x8 * 1643612827LL;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D2008 = (int32_t)shft0LL;
  x8 = D2008 + x1;
  dctBlock[col] = x6;
  D1996 = dctBlock + (128 / sizeof(*dctBlock));
  D1996[col] = x4;
  D1994 = dctBlock + (64 / sizeof(*dctBlock));
  round1L = x8 + 1;
  shft1L = round1L >> 1;
  D1994[col] = shft1L;
  D1998 = dctBlock + (192 / sizeof(*dctBlock));
  D1998[col] = x7;
  D1999 = dctBlock + (224 / sizeof(*dctBlock));
  D2009 = x2 - x5;
  D1999[col] = D2009;
  D1993 = dctBlock + (32 / sizeof(*dctBlock));
  D2010 = x2 + x5;
  D1993[col] = D2010;
  D1995 = dctBlock + (96 / sizeof(*dctBlock));
  wide0LL = (int64_t)x3 * 1518500250LL;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D2011 = (int32_t)shft0LL;
  D1995[col] = D2011;
  D1997 = dctBlock + (160 / sizeof(*dctBlock));
  wide0LL = (int64_t)x0 * 1518500250LL;
  round0LL = wide0LL + 536870912LL;
  shft0LL = round0LL >> 30;
  D2012 = (int32_t)shft0LL;
  D1997[col] = D2012;
  col = col + 1;
bb7:
  if (col <= 7)
    goto bb6;
  else
    goto bb8;
bb8:
  return 0;
}


x86 assembly (clang, -O0):
<dct>:
push   %rbp
mov    %rsp,%rbp
sub    $0x98,%rsp
mov    %rdi,-0x8(%rbp)
movl   $0x0,-0x60(%rbp)
jmp    19d7 <dct+0x8d7>
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x110(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x58(%rbp)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x110(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x54(%rbp)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x110(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x50(%rbp)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x110(%rbp),%rax
mov    0xc(%rax),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x110(%rbp),%rax
mov    0x10(%rax),%eax
mov    %eax,-0x48(%rbp)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x110(%rbp),%rax
mov    0x14(%rax),%eax
mov    %eax,-0x44(%rbp)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x110(%rbp),%rax
mov    0x18(%rax),%eax
mov    %eax,-0x40(%rbp)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x110(%rbp),%rax
mov    0x1c(%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
add    -0x58(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x58(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0x54(%rbp),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x54(%rbp),%eax
sub    -0x40(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x50(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x50(%rbp),%eax
sub    -0x44(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x48(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x4c(%rbp),%eax
sub    -0x48(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x38(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x38(%rbp),%eax
sub    -0x44(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x3c(%rbp),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x3c(%rbp),%eax
sub    -0x40(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x54(%rbp),%eax
add    -0x50(%rbp),%eax
mov    %eax,-0x104(%rbp)
movslq -0x104(%rbp),%rax
imul   $0x7d8a5f40,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x40(%rbp)
movslq -0x50(%rbp),%rax
imul   $0xffffffffb4be7442,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x100(%rbp)
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x100(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x50(%rbp)
movslq -0x54(%rbp),%rax
imul   $0xffffffff9b6e58fd,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0xfc(%rbp)
mov    -0xfc(%rbp),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x58(%rbp),%eax
add    -0x4c(%rbp),%eax
mov    %eax,-0xf8(%rbp)
movslq -0xf8(%rbp),%rax
imul   $0x6a6d98a4,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x40(%rbp)
movslq -0x4c(%rbp),%rax
imul   $0xffffffffa73abd3b,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0xf4(%rbp)
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0xf4(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x4c(%rbp)
movslq -0x58(%rbp),%rax
imul   $0xffffffffdcaf5442,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x10000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1d,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0xf0(%rbp)
mov    -0xf0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0x48(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x48(%rbp),%eax
sub    -0x44(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    -0x50(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
sub    -0x50(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x4c(%rbp),%eax
sub    -0x2c(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x3c(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0xec(%rbp)
movslq -0xec(%rbp),%rax
imul   $0x4545e9ef,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x54(%rbp)
movslq -0x3c(%rbp),%rax
imul   $0xffffffff89be50c3,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0xe8(%rbp)
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0xe8(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x3c(%rbp)
movslq -0x38(%rbp),%rax
imul   $0x61f78a9b,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0xe4(%rbp)
mov    -0xe4(%rbp),%eax
add    -0x54(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x40(%rbp),%ecx
mov    -0x110(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x48(%rbp),%ecx
mov    -0x110(%rbp),%rax
mov    %ecx,0x10(%rax)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%ecx
mov    -0x110(%rbp),%rax
mov    %ecx,0x8(%rax)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x3c(%rbp),%ecx
mov    -0x110(%rbp),%rax
mov    %ecx,0x18(%rax)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x50(%rbp),%eax
sub    -0x44(%rbp),%eax
mov    %eax,-0xe0(%rbp)
mov    -0xe0(%rbp),%ecx
mov    -0x110(%rbp),%rax
mov    %ecx,0x1c(%rax)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
mov    -0x50(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0xdc(%rbp)
mov    -0xdc(%rbp),%ecx
mov    -0x110(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
movslq -0x4c(%rbp),%rax
imul   $0x5a82799a,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0xd8(%rbp)
mov    -0xd8(%rbp),%ecx
mov    -0x110(%rbp),%rax
mov    %ecx,0xc(%rax)
mov    -0x60(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x34(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x110(%rbp)
movslq -0x58(%rbp),%rax
imul   $0x5a82799a,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0xd4(%rbp)
mov    -0xd4(%rbp),%ecx
mov    -0x110(%rbp),%rax
mov    %ecx,0x14(%rax)
mov    -0x60(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x60(%rbp)
cmpl   $0x7,-0x60(%rbp)
jg     19e6 <dct+0x8e6>
jmp    111b <dct+0x1b>
jmp    19eb <dct+0x8eb>
movl   $0x0,-0x5c(%rbp)
jmp    1fc1 <dct+0xec1>
mov    -0x8(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x58(%rbp)
mov    -0x8(%rbp),%rax
add    $0x20,%rax
mov    %rax,-0xd0(%rbp)
mov    -0xd0(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x54(%rbp)
mov    -0x8(%rbp),%rax
add    $0x40,%rax
mov    %rax,-0xc8(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x50(%rbp)
mov    -0x8(%rbp),%rax
add    $0x60,%rax
mov    %rax,-0xc0(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x8(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0xb8(%rbp)
mov    -0xb8(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x48(%rbp)
mov    -0x8(%rbp),%rax
add    $0xa0,%rax
mov    %rax,-0xb0(%rbp)
mov    -0xb0(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x44(%rbp)
mov    -0x8(%rbp),%rax
add    $0xc0,%rax
mov    %rax,-0xa8(%rbp)
mov    -0xa8(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x40(%rbp)
mov    -0x8(%rbp),%rax
add    $0xe0,%rax
mov    %rax,-0xa0(%rbp)
mov    -0xa0(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
add    -0x58(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x58(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0x54(%rbp),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x54(%rbp),%eax
sub    -0x40(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x50(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x50(%rbp),%eax
sub    -0x44(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x48(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x4c(%rbp),%eax
sub    -0x48(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x38(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x38(%rbp),%eax
sub    -0x44(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x3c(%rbp),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x3c(%rbp),%eax
sub    -0x40(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x54(%rbp),%eax
add    -0x50(%rbp),%eax
mov    %eax,-0x94(%rbp)
movslq -0x94(%rbp),%rax
imul   $0x7d8a5f40,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x40(%rbp)
movslq -0x50(%rbp),%rax
imul   $0xffffffffb4be7442,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x90(%rbp)
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x90(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x50(%rbp)
movslq -0x54(%rbp),%rax
imul   $0xffffffff9b6e58fd,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x8c(%rbp)
mov    -0x8c(%rbp),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x58(%rbp),%eax
add    -0x4c(%rbp),%eax
mov    %eax,-0x88(%rbp)
movslq -0x88(%rbp),%rax
imul   $0x6a6d98a4,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x40(%rbp)
movslq -0x4c(%rbp),%rax
imul   $0xffffffffa73abd3b,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x84(%rbp)
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x84(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x4c(%rbp)
movslq -0x58(%rbp),%rax
imul   $0xffffffffdcaf5442,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x10000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1d,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x80(%rbp)
mov    -0x80(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0x48(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x48(%rbp),%eax
sub    -0x44(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    -0x50(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
sub    -0x50(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x4c(%rbp),%eax
sub    -0x2c(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x3c(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x7c(%rbp)
movslq -0x7c(%rbp),%rax
imul   $0x4545e9ef,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x54(%rbp)
movslq -0x3c(%rbp),%rax
imul   $0xffffffff89be50c3,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x78(%rbp)
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x78(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x3c(%rbp)
movslq -0x38(%rbp),%rax
imul   $0x61f78a9b,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x74(%rbp)
mov    -0x74(%rbp),%eax
add    -0x54(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x40(%rbp),%edx
mov    -0x8(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x48(%rbp),%edx
mov    -0xb8(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0x40,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%edx
mov    -0xc8(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0xc0,%rax
mov    %rax,-0xa8(%rbp)
mov    -0x3c(%rbp),%edx
mov    -0xa8(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0xe0,%rax
mov    %rax,-0xa0(%rbp)
mov    -0x50(%rbp),%eax
sub    -0x44(%rbp),%eax
mov    %eax,-0x70(%rbp)
mov    -0x70(%rbp),%edx
mov    -0xa0(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0x20,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x6c(%rbp)
mov    -0x6c(%rbp),%edx
mov    -0xd0(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0x60,%rax
mov    %rax,-0xc0(%rbp)
movslq -0x4c(%rbp),%rax
imul   $0x5a82799a,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x68(%rbp)
mov    -0x68(%rbp),%edx
mov    -0xc0(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0xa0,%rax
mov    %rax,-0xb0(%rbp)
movslq -0x58(%rbp),%rax
imul   $0x5a82799a,%rax,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20000000,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
sar    $0x1e,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %eax,-0x64(%rbp)
mov    -0x64(%rbp),%edx
mov    -0xb0(%rbp),%rax
movslq -0x5c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
cmpl   $0x7,-0x5c(%rbp)
jg     1fd0 <dct+0xed0>
jmp    19f7 <dct+0x8f7>
jmp    1fd5 <dct+0xed5>
xor    %eax,%eax
add    $0x98,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<dct>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
xor    %eax,%eax
nopw   0x0(%rax,%rax,1)
mov    (%rdi,%rax,1),%r15d
mov    0x4(%rdi,%rax,1),%ebx
mov    0x8(%rdi,%rax,1),%esi
mov    0xc(%rdi,%rax,1),%r12d
mov    0x10(%rdi,%rax,1),%r8d
mov    0x14(%rdi,%rax,1),%edx
mov    0x18(%rdi,%rax,1),%ecx
mov    0x1c(%rdi,%rax,1),%ebp
lea    (%r15,%rbp,1),%r9d
sub    %ebp,%r15d
lea    (%rcx,%rbx,1),%r10d
sub    %ecx,%ebx
lea    (%rdx,%rsi,1),%ecx
sub    %edx,%esi
lea    (%r8,%r12,1),%edx
sub    %r8d,%r12d
lea    (%r9,%rdx,1),%r8d
sub    %edx,%r9d
lea    (%r10,%rcx,1),%r11d
sub    %ecx,%r10d
lea    (%rbx,%rsi,1),%ecx
movslq %ecx,%rcx
imul   $0x7d8a5f40,%rcx,%r14
add    $0x20000000,%r14
shr    $0x1e,%r14
movslq %esi,%rcx
imul   $0xffffffffb4be7442,%rcx,%rcx
add    $0x20000000,%rcx
shr    $0x1e,%rcx
lea    0x1(%r14),%esi
sar    %esi
add    %ecx,%esi
movslq %ebx,%rcx
imul   $0xffffffff9b6e58fd,%rcx,%rbx
add    $0x20000000,%rbx
shr    $0x1e,%rbx
lea    (%r15,%r12,1),%ecx
movslq %ecx,%rcx
imul   $0x6a6d98a4,%rcx,%rbp
add    $0x20000000,%rbp
shr    $0x1e,%rbp
movslq %r12d,%rcx
imul   $0xffffffffa73abd3b,%rcx,%rdx
add    $0x20000000,%rdx
shr    $0x1e,%rdx
lea    0x1(%rbp),%ecx
sar    %ecx
add    %edx,%ecx
movslq %r15d,%rdx
imul   $0xffffffffdcaf5442,%rdx,%rdx
add    $0x10000000,%rdx
shr    $0x1d,%rdx
add    $0x1,%edx
sar    %edx
lea    (%r8,%r11,1),%r15d
sub    %r11d,%r8d
add    %ebp,%edx
add    $0x1,%edx
sar    %edx
lea    (%rdx,%rsi,1),%r11d
sub    %esi,%edx
add    %r14d,%ebx
add    $0x1,%ebx
sar    %ebx
lea    (%rcx,%rbx,1),%r14d
sub    %ebx,%ecx
lea    (%r9,%r10,1),%ebx
movslq %ebx,%rbx
imul   $0x4545e9ef,%rbx,%rbx
add    $0x20000000,%rbx
shr    $0x1e,%rbx
movslq %r10d,%rbp
imul   $0xffffffff89be50c3,%rbp,%rbp
add    $0x20000000,%rbp
shr    $0x1e,%rbp
lea    0x1(%rbx),%esi
sar    %esi
add    %ebp,%esi
movslq %r9d,%rbp
imul   $0x61f78a9b,%rbp,%rbp
add    $0x20000000,%rbp
shr    $0x1e,%rbp
mov    %r15d,(%rdi,%rax,1)
mov    %r8d,0x10(%rdi,%rax,1)
add    %ebx,%ebp
add    $0x1,%ebp
sar    %ebp
mov    %ebp,0x8(%rdi,%rax,1)
mov    %esi,0x18(%rdi,%rax,1)
mov    %r14d,%esi
sub    %r11d,%esi
mov    %esi,0x1c(%rdi,%rax,1)
add    %r11d,%r14d
mov    %r14d,0x4(%rdi,%rax,1)
movslq %ecx,%rcx
imul   $0x5a82799a,%rcx,%rcx
add    $0x20000000,%rcx
shr    $0x1e,%rcx
mov    %ecx,0xc(%rdi,%rax,1)
movslq %edx,%rcx
imul   $0x5a82799a,%rcx,%rcx
add    $0x20000000,%rcx
shr    $0x1e,%rcx
mov    %ecx,0x14(%rdi,%rax,1)
add    $0x20,%rax
cmp    $0x100,%rax
jne    1110 <dct+0x10>
mov    $0xfffffffffffffff8,%rax
movdqa 0xd36(%rip),%xmm15
nopw   0x0(%rax,%rax,1)
movdqu 0x20(%rdi,%rax,4),%xmm8
movdqu 0x40(%rdi,%rax,4),%xmm2
movdqu 0x60(%rdi,%rax,4),%xmm3
movdqu 0x80(%rdi,%rax,4),%xmm11
movdqu 0xa0(%rdi,%rax,4),%xmm0
movdqu 0xc0(%rdi,%rax,4),%xmm1
movdqu 0xe0(%rdi,%rax,4),%xmm4
movdqu 0x100(%rdi,%rax,4),%xmm5
movdqa %xmm5,%xmm6
paddd  %xmm8,%xmm6
psubd  %xmm5,%xmm8
movdqa %xmm4,%xmm9
paddd  %xmm2,%xmm9
psubd  %xmm4,%xmm2
movdqa %xmm1,%xmm4
paddd  %xmm3,%xmm4
psubd  %xmm1,%xmm3
movdqa %xmm0,%xmm1
paddd  %xmm11,%xmm1
psubd  %xmm0,%xmm11
movdqa %xmm6,%xmm0
paddd  %xmm1,%xmm0
movdqa %xmm0,-0x20(%rsp)
psubd  %xmm1,%xmm6
movdqa %xmm6,-0x10(%rsp)
movdqa %xmm9,%xmm10
paddd  %xmm4,%xmm10
psubd  %xmm4,%xmm9
movdqa %xmm2,%xmm1
paddd  %xmm3,%xmm1
pshufd $0xd4,%xmm1,%xmm12
pshufd $0xfe,%xmm1,%xmm1
pxor   %xmm4,%xmm4
pcmpgtd %xmm1,%xmm4
movdqa 0xc5f(%rip),%xmm6
pmuludq %xmm6,%xmm1
pmuludq %xmm6,%xmm4
psllq  $0x20,%xmm4
pxor   %xmm5,%xmm5
pcmpgtd %xmm12,%xmm5
pmuludq %xmm6,%xmm12
pmuludq %xmm6,%xmm5
psllq  $0x20,%xmm5
paddq  %xmm15,%xmm12
paddq  %xmm5,%xmm12
paddq  %xmm15,%xmm1
paddq  %xmm4,%xmm1
psrlq  $0x1e,%xmm1
psrlq  $0x1e,%xmm12
shufps $0x88,%xmm1,%xmm12
pshufd $0xee,%xmm3,%xmm1
pxor   %xmm4,%xmm4
pcmpgtd %xmm1,%xmm4
punpckldq %xmm4,%xmm1
pxor   %xmm5,%xmm5
pcmpgtd %xmm3,%xmm5
punpckldq %xmm5,%xmm3
movdqa %xmm3,%xmm13
movdqa 0xc0e(%rip),%xmm6
pmuludq %xmm6,%xmm13
movdqa 0xc11(%rip),%xmm0
pmuludq %xmm0,%xmm3
pshufd $0xd4,%xmm5,%xmm5
pmuludq %xmm6,%xmm5
paddq  %xmm3,%xmm5
psllq  $0x20,%xmm5
movdqa %xmm1,%xmm3
pmuludq %xmm6,%xmm3
pmuludq %xmm0,%xmm1
pshufd $0xd4,%xmm4,%xmm4
pmuludq %xmm6,%xmm4
paddq  %xmm1,%xmm4
psllq  $0x20,%xmm4
paddq  %xmm15,%xmm3
paddq  %xmm4,%xmm3
paddq  %xmm15,%xmm13
paddq  %xmm5,%xmm13
psrlq  $0x1e,%xmm13
psrlq  $0x1e,%xmm3
shufps $0x88,%xmm3,%xmm13
pcmpeqd %xmm1,%xmm1
psubd  %xmm1,%xmm12
pshufd $0xee,%xmm2,%xmm1
pxor   %xmm3,%xmm3
pcmpgtd %xmm1,%xmm3
punpckldq %xmm3,%xmm1
pxor   %xmm4,%xmm4
pcmpgtd %xmm2,%xmm4
punpckldq %xmm4,%xmm2
movdqa %xmm2,%xmm14
movdqa 0xb97(%rip),%xmm5
pmuludq %xmm5,%xmm14
pmuludq %xmm0,%xmm2
pshufd $0xd4,%xmm4,%xmm4
pmuludq %xmm5,%xmm4
paddq  %xmm2,%xmm4
psllq  $0x20,%xmm4
movdqa %xmm1,%xmm2
pmuludq %xmm5,%xmm2
pmuludq %xmm0,%xmm1
pshufd $0xd4,%xmm3,%xmm3
pmuludq %xmm5,%xmm3
paddq  %xmm1,%xmm3
psllq  $0x20,%xmm3
paddq  %xmm15,%xmm2
paddq  %xmm3,%xmm2
paddq  %xmm15,%xmm14
paddq  %xmm4,%xmm14
psrlq  $0x1e,%xmm14
psrlq  $0x1e,%xmm2
shufps $0x88,%xmm2,%xmm14
paddd  %xmm12,%xmm14
psrad  $0x1,%xmm12
paddd  %xmm13,%xmm12
movdqa %xmm8,%xmm1
paddd  %xmm11,%xmm1
pshufd $0xd4,%xmm1,%xmm4
pshufd $0xfe,%xmm1,%xmm1
pxor   %xmm2,%xmm2
pcmpgtd %xmm1,%xmm2
movdqa 0xb17(%rip),%xmm5
pmuludq %xmm5,%xmm1
pmuludq %xmm5,%xmm2
psllq  $0x20,%xmm2
pxor   %xmm3,%xmm3
pcmpgtd %xmm4,%xmm3
pmuludq %xmm5,%xmm4
pmuludq %xmm5,%xmm3
psllq  $0x20,%xmm3
paddq  %xmm15,%xmm4
paddq  %xmm3,%xmm4
paddq  %xmm15,%xmm1
paddq  %xmm2,%xmm1
psrlq  $0x1e,%xmm1
psrlq  $0x1e,%xmm4
shufps $0x88,%xmm1,%xmm4
pshufd $0xee,%xmm11,%xmm1
pxor   %xmm2,%xmm2
pcmpgtd %xmm1,%xmm2
punpckldq %xmm2,%xmm1
pxor   %xmm3,%xmm3
pcmpgtd %xmm11,%xmm3
punpckldq %xmm3,%xmm11
movdqa %xmm11,%xmm5
movdqa 0xab7(%rip),%xmm13
pmuludq %xmm13,%xmm5
pmuludq %xmm0,%xmm11
pshufd $0xd4,%xmm3,%xmm3
pmuludq %xmm13,%xmm3
paddq  %xmm11,%xmm3
psllq  $0x20,%xmm3
movdqa %xmm1,%xmm6
pmuludq %xmm13,%xmm6
pmuludq %xmm0,%xmm1
pshufd $0xd4,%xmm2,%xmm2
pmuludq %xmm13,%xmm2
paddq  %xmm1,%xmm2
psllq  $0x20,%xmm2
paddq  %xmm15,%xmm6
paddq  %xmm2,%xmm6
paddq  %xmm15,%xmm5
paddq  %xmm3,%xmm5
psrlq  $0x1e,%xmm5
psrlq  $0x1e,%xmm6
shufps $0x88,%xmm6,%xmm5
pcmpeqd %xmm7,%xmm7
psubd  %xmm7,%xmm4
pshufd $0xee,%xmm8,%xmm2
pxor   %xmm3,%xmm3
pcmpgtd %xmm2,%xmm3
punpckldq %xmm3,%xmm2
pxor   %xmm6,%xmm6
pcmpgtd %xmm8,%xmm6
punpckldq %xmm6,%xmm8
movdqa %xmm8,%xmm11
movdqa 0xa33(%rip),%xmm13
pmuludq %xmm13,%xmm11
pmuludq %xmm0,%xmm8
pshufd $0xd4,%xmm6,%xmm6
pmuludq %xmm13,%xmm6
paddq  %xmm8,%xmm6
psllq  $0x20,%xmm6
movdqa %xmm2,%xmm1
pmuludq %xmm13,%xmm1
pmuludq %xmm0,%xmm2
pshufd $0xd4,%xmm3,%xmm3
pmuludq %xmm13,%xmm3
paddq  %xmm2,%xmm3
psllq  $0x20,%xmm3
movdqa 0x9fd(%rip),%xmm2
paddq  %xmm2,%xmm1
paddq  %xmm3,%xmm1
paddq  %xmm2,%xmm11
paddq  %xmm6,%xmm11
psrlq  $0x1d,%xmm11
psrlq  $0x1d,%xmm1
shufps $0x88,%xmm1,%xmm11
psubd  %xmm7,%xmm11
psrad  $0x1,%xmm11
paddd  %xmm4,%xmm11
movdqa %xmm4,%xmm13
psrad  $0x1,%xmm13
paddd  %xmm5,%xmm13
movdqa -0x20(%rsp),%xmm0
movdqa %xmm0,%xmm8
paddd  %xmm10,%xmm8
psubd  %xmm10,%xmm0
movdqa %xmm0,-0x20(%rsp)
psrad  $0x1,%xmm11
movdqa %xmm11,%xmm10
paddd  %xmm12,%xmm10
psubd  %xmm12,%xmm11
psrad  $0x1,%xmm14
movdqa %xmm13,%xmm12
paddd  %xmm14,%xmm12
psubd  %xmm14,%xmm13
movdqa -0x10(%rsp),%xmm7
movdqa %xmm7,%xmm2
paddd  %xmm9,%xmm2
pshufd $0xd4,%xmm2,%xmm1
pshufd $0xfe,%xmm2,%xmm2
pxor   %xmm3,%xmm3
pcmpgtd %xmm2,%xmm3
movdqa 0x95d(%rip),%xmm4
pmuludq %xmm4,%xmm2
pmuludq %xmm4,%xmm3
psllq  $0x20,%xmm3
pxor   %xmm5,%xmm5
pcmpgtd %xmm1,%xmm5
pmuludq %xmm4,%xmm1
pmuludq %xmm4,%xmm5
psllq  $0x20,%xmm5
paddq  %xmm15,%xmm1
paddq  %xmm5,%xmm1
paddq  %xmm15,%xmm2
paddq  %xmm3,%xmm2
psrlq  $0x1e,%xmm2
psrlq  $0x1e,%xmm1
shufps $0x88,%xmm2,%xmm1
pshufd $0xee,%xmm9,%xmm4
pxor   %xmm5,%xmm5
pcmpgtd %xmm4,%xmm5
punpckldq %xmm5,%xmm4
pxor   %xmm6,%xmm6
pcmpgtd %xmm9,%xmm6
punpckldq %xmm6,%xmm9
movdqa %xmm9,%xmm3
movdqa 0x88e(%rip),%xmm0
pmuludq %xmm0,%xmm9
pshufd $0xd4,%xmm6,%xmm6
movdqa 0x8eb(%rip),%xmm14
pmuludq %xmm14,%xmm6
paddq  %xmm9,%xmm6
movdqa %xmm4,%xmm2
pmuludq %xmm0,%xmm4
pshufd $0xd4,%xmm5,%xmm5
pmuludq %xmm14,%xmm5
paddq  %xmm4,%xmm5
pmuludq %xmm14,%xmm2
psllq  $0x20,%xmm5
paddq  %xmm15,%xmm2
paddq  %xmm5,%xmm2
pmuludq %xmm14,%xmm3
psllq  $0x20,%xmm6
paddq  %xmm15,%xmm3
paddq  %xmm6,%xmm3
pshufd $0xd4,%xmm7,%xmm5
pshufd $0xfe,%xmm7,%xmm4
psrlq  $0x1e,%xmm3
psrlq  $0x1e,%xmm2
shufps $0x88,%xmm2,%xmm3
pxor   %xmm2,%xmm2
pcmpgtd %xmm5,%xmm2
movdqa 0x88d(%rip),%xmm0
pmuludq %xmm0,%xmm5
pmuludq %xmm0,%xmm2
psllq  $0x20,%xmm2
paddq  %xmm15,%xmm5
paddq  %xmm2,%xmm5
pxor   %xmm2,%xmm2
pcmpgtd %xmm4,%xmm2
pmuludq %xmm0,%xmm4
pmuludq %xmm0,%xmm2
psllq  $0x20,%xmm2
paddq  %xmm15,%xmm4
paddq  %xmm2,%xmm4
psrlq  $0x1e,%xmm4
psrlq  $0x1e,%xmm5
shufps $0x88,%xmm4,%xmm5
psubd  0x863(%rip),%xmm1
paddd  %xmm1,%xmm5
psrad  $0x1,%xmm1
paddd  %xmm3,%xmm1
movdqu %xmm8,0x20(%rdi,%rax,4)
movaps -0x20(%rsp),%xmm0
movups %xmm0,0xa0(%rdi,%rax,4)
psrad  $0x1,%xmm5
movdqu %xmm5,0x60(%rdi,%rax,4)
movdqu %xmm1,0xe0(%rdi,%rax,4)
movdqa %xmm12,%xmm0
psubd  %xmm10,%xmm0
movdqu %xmm0,0x100(%rdi,%rax,4)
paddd  %xmm10,%xmm12
movdqu %xmm12,0x40(%rdi,%rax,4)
pshufd $0xd4,%xmm13,%xmm0
pshufd $0xfe,%xmm13,%xmm1
pxor   %xmm2,%xmm2
pcmpgtd %xmm0,%xmm2
movdqa 0x7e3(%rip),%xmm3
pmuludq %xmm3,%xmm0
pmuludq %xmm3,%xmm2
psllq  $0x20,%xmm2
paddq  %xmm15,%xmm0
paddq  %xmm2,%xmm0
pxor   %xmm2,%xmm2
pcmpgtd %xmm1,%xmm2
pmuludq %xmm3,%xmm1
pmuludq %xmm3,%xmm2
psllq  $0x20,%xmm2
paddq  %xmm15,%xmm1
paddq  %xmm2,%xmm1
psrlq  $0x1e,%xmm1
psrlq  $0x1e,%xmm0
shufps $0x88,%xmm1,%xmm0
movups %xmm0,0x80(%rdi,%rax,4)
pshufd $0xd4,%xmm11,%xmm0
pshufd $0xfe,%xmm11,%xmm1
pxor   %xmm2,%xmm2
pcmpgtd %xmm0,%xmm2
pmuludq %xmm3,%xmm0
pmuludq %xmm3,%xmm2
psllq  $0x20,%xmm2
paddq  %xmm15,%xmm0
paddq  %xmm2,%xmm0
pxor   %xmm2,%xmm2
pcmpgtd %xmm1,%xmm2
pmuludq %xmm3,%xmm1
pmuludq %xmm3,%xmm2
psllq  $0x20,%xmm2
paddq  %xmm15,%xmm1
paddq  %xmm2,%xmm1
psrlq  $0x1e,%xmm1
psrlq  $0x1e,%xmm0
shufps $0x88,%xmm1,%xmm0
movups %xmm0,0xc0(%rdi,%rax,4)
add    $0x4,%rax
jne    12e0 <dct+0x1e0>
xor    %eax,%eax
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define i32 @dct(i32* %0) {
%2 = alloca i32*
%3 = alloca i64
%4 = alloca i64
%5 = alloca i64
%6 = alloca i32
%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
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca i32
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
%25 = alloca i32
%26 = alloca i32
%27 = alloca i32
%28 = alloca i32
%29 = alloca i32
%30 = alloca i32
%31 = alloca i32
%32 = alloca i32
%33 = alloca i32
%34 = alloca i32
%35 = alloca i32*
%36 = alloca i32*
%37 = alloca i32*
%38 = alloca i32*
%39 = alloca i32*
%40 = alloca i32*
%41 = alloca i32*
%42 = alloca i32
%43 = alloca i32
%44 = alloca i32
%45 = alloca i32
%46 = alloca i32
%47 = alloca i32
%48 = alloca i32
%49 = alloca i32
%50 = alloca i32
%51 = alloca i32
%52 = alloca i32
%53 = alloca i32
%54 = alloca i32
%55 = alloca i32*
%56 = alloca i32
%57 = alloca i32
store i32* %0, i32** %2
br label %58
58: ; preds = %1
store i32 0, i32* %21
br label %492
59: ; preds = %495
%60 = load i32, i32* %21
store i32 %60, i32* %57
%61 = load i32, i32* %57
%62 = mul nsw i32 %61, 64
store i32 %62, i32* %56
%63 = load i32, i32* %56
%64 = ashr i32 %63, 1
store i32 %64, i32* %10
%65 = load i32*, i32** %2
%66 = load i32, i32* %10
%67 = sext i32 %66 to i64
%68 = udiv i64 %67, 4
%69 = getelementptr inbounds i32, i32* %65, i64 %68
store i32* %69, i32** %55
%70 = load i32*, i32** %55
%71 = getelementptr inbounds i32, i32* %70, i64 0
%72 = load i32, i32* %71
store i32 %72, i32* %19
%73 = load i32, i32* %21
store i32 %73, i32* %57
%74 = load i32, i32* %57
%75 = mul nsw i32 %74, 64
store i32 %75, i32* %56
%76 = load i32, i32* %56
%77 = ashr i32 %76, 1
store i32 %77, i32* %10
%78 = load i32*, i32** %2
%79 = load i32, i32* %10
%80 = sext i32 %79 to i64
%81 = udiv i64 %80, 4
%82 = getelementptr inbounds i32, i32* %78, i64 %81
store i32* %82, i32** %55
%83 = load i32*, i32** %55
%84 = getelementptr inbounds i32, i32* %83, i64 1
%85 = load i32, i32* %84
store i32 %85, i32* %18
%86 = load i32, i32* %21
store i32 %86, i32* %57
%87 = load i32, i32* %57
%88 = mul nsw i32 %87, 64
store i32 %88, i32* %56
%89 = load i32, i32* %56
%90 = ashr i32 %89, 1
store i32 %90, i32* %10
%91 = load i32*, i32** %2
%92 = load i32, i32* %10
%93 = sext i32 %92 to i64
%94 = udiv i64 %93, 4
%95 = getelementptr inbounds i32, i32* %91, i64 %94
store i32* %95, i32** %55
%96 = load i32*, i32** %55
%97 = getelementptr inbounds i32, i32* %96, i64 2
%98 = load i32, i32* %97
store i32 %98, i32* %17
%99 = load i32, i32* %21
store i32 %99, i32* %57
%100 = load i32, i32* %57
%101 = mul nsw i32 %100, 64
store i32 %101, i32* %56
%102 = load i32, i32* %56
%103 = ashr i32 %102, 1
store i32 %103, i32* %10
%104 = load i32*, i32** %2
%105 = load i32, i32* %10
%106 = sext i32 %105 to i64
%107 = udiv i64 %106, 4
%108 = getelementptr inbounds i32, i32* %104, i64 %107
store i32* %108, i32** %55
%109 = load i32*, i32** %55
%110 = getelementptr inbounds i32, i32* %109, i64 3
%111 = load i32, i32* %110
store i32 %111, i32* %16
%112 = load i32, i32* %21
store i32 %112, i32* %57
%113 = load i32, i32* %57
%114 = mul nsw i32 %113, 64
store i32 %114, i32* %56
%115 = load i32, i32* %56
%116 = ashr i32 %115, 1
store i32 %116, i32* %10
%117 = load i32*, i32** %2
%118 = load i32, i32* %10
%119 = sext i32 %118 to i64
%120 = udiv i64 %119, 4
%121 = getelementptr inbounds i32, i32* %117, i64 %120
store i32* %121, i32** %55
%122 = load i32*, i32** %55
%123 = getelementptr inbounds i32, i32* %122, i64 4
%124 = load i32, i32* %123
store i32 %124, i32* %15
%125 = load i32, i32* %21
store i32 %125, i32* %57
%126 = load i32, i32* %57
%127 = mul nsw i32 %126, 64
store i32 %127, i32* %56
%128 = load i32, i32* %56
%129 = ashr i32 %128, 1
store i32 %129, i32* %10
%130 = load i32*, i32** %2
%131 = load i32, i32* %10
%132 = sext i32 %131 to i64
%133 = udiv i64 %132, 4
%134 = getelementptr inbounds i32, i32* %130, i64 %133
store i32* %134, i32** %55
%135 = load i32*, i32** %55
%136 = getelementptr inbounds i32, i32* %135, i64 5
%137 = load i32, i32* %136
store i32 %137, i32* %14
%138 = load i32, i32* %21
store i32 %138, i32* %57
%139 = load i32, i32* %57
%140 = mul nsw i32 %139, 64
store i32 %140, i32* %56
%141 = load i32, i32* %56
%142 = ashr i32 %141, 1
store i32 %142, i32* %10
%143 = load i32*, i32** %2
%144 = load i32, i32* %10
%145 = sext i32 %144 to i64
%146 = udiv i64 %145, 4
%147 = getelementptr inbounds i32, i32* %143, i64 %146
store i32* %147, i32** %55
%148 = load i32*, i32** %55
%149 = getelementptr inbounds i32, i32* %148, i64 6
%150 = load i32, i32* %149
store i32 %150, i32* %13
%151 = load i32, i32* %21
store i32 %151, i32* %57
%152 = load i32, i32* %57
%153 = mul nsw i32 %152, 64
store i32 %153, i32* %56
%154 = load i32, i32* %56
%155 = ashr i32 %154, 1
store i32 %155, i32* %10
%156 = load i32*, i32** %2
%157 = load i32, i32* %10
%158 = sext i32 %157 to i64
%159 = udiv i64 %158, 4
%160 = getelementptr inbounds i32, i32* %156, i64 %159
store i32* %160, i32** %55
%161 = load i32*, i32** %55
%162 = getelementptr inbounds i32, i32* %161, i64 7
%163 = load i32, i32* %162
store i32 %163, i32* %12
%164 = load i32, i32* %12
%165 = load i32, i32* %19
%166 = add nsw i32 %164, %165
store i32 %166, i32* %11
%167 = load i32, i32* %19
%168 = load i32, i32* %12
%169 = sub nsw i32 %167, %168
store i32 %169, i32* %19
%170 = load i32, i32* %18
%171 = load i32, i32* %13
%172 = add nsw i32 %170, %171
store i32 %172, i32* %12
%173 = load i32, i32* %18
%174 = load i32, i32* %13
%175 = sub nsw i32 %173, %174
store i32 %175, i32* %18
%176 = load i32, i32* %17
%177 = load i32, i32* %14
%178 = add nsw i32 %176, %177
store i32 %178, i32* %13
%179 = load i32, i32* %17
%180 = load i32, i32* %14
%181 = sub nsw i32 %179, %180
store i32 %181, i32* %17
%182 = load i32, i32* %16
%183 = load i32, i32* %15
%184 = add nsw i32 %182, %183
store i32 %184, i32* %14
%185 = load i32, i32* %16
%186 = load i32, i32* %15
%187 = sub nsw i32 %185, %186
store i32 %187, i32* %16
%188 = load i32, i32* %11
%189 = load i32, i32* %14
%190 = add nsw i32 %188, %189
store i32 %190, i32* %15
%191 = load i32, i32* %11
%192 = load i32, i32* %14
%193 = sub nsw i32 %191, %192
store i32 %193, i32* %11
%194 = load i32, i32* %12
%195 = load i32, i32* %13
%196 = add nsw i32 %194, %195
store i32 %196, i32* %14
%197 = load i32, i32* %12
%198 = load i32, i32* %13
%199 = sub nsw i32 %197, %198
store i32 %199, i32* %12
%200 = load i32, i32* %18
%201 = load i32, i32* %17
%202 = add nsw i32 %200, %201
store i32 %202, i32* %54
%203 = load i32, i32* %54
%204 = sext i32 %203 to i64
%205 = mul nsw i64 %204, 2106220352
store i64 %205, i64* %5
%206 = load i64, i64* %5
%207 = add nsw i64 %206, 536870912
store i64 %207, i64* %4
%208 = load i64, i64* %4
%209 = ashr i64 %208, 30
store i64 %209, i64* %3
%210 = load i64, i64* %3
%211 = trunc i64 %210 to i32
store i32 %211, i32* %13
%212 = load i32, i32* %17
%213 = sext i32 %212 to i64
%214 = mul nsw i64 %213, -1262586814
store i64 %214, i64* %5
%215 = load i64, i64* %5
%216 = add nsw i64 %215, 536870912
store i64 %216, i64* %4
%217 = load i64, i64* %4
%218 = ashr i64 %217, 30
store i64 %218, i64* %3
%219 = load i64, i64* %3
%220 = trunc i64 %219 to i32
store i32 %220, i32* %53
%221 = load i32, i32* %13
%222 = add nsw i32 %221, 1
store i32 %222, i32* %9
%223 = load i32, i32* %9
%224 = ashr i32 %223, 1
store i32 %224, i32* %8
%225 = load i32, i32* %53
%226 = load i32, i32* %8
%227 = add nsw i32 %225, %226
store i32 %227, i32* %17
%228 = load i32, i32* %18
%229 = sext i32 %228 to i64
%230 = mul nsw i64 %229, -1687267075
store i64 %230, i64* %5
%231 = load i64, i64* %5
%232 = add nsw i64 %231, 536870912
store i64 %232, i64* %4
%233 = load i64, i64* %4
%234 = ashr i64 %233, 30
store i64 %234, i64* %3
%235 = load i64, i64* %3
%236 = trunc i64 %235 to i32
store i32 %236, i32* %52
%237 = load i32, i32* %52
%238 = load i32, i32* %13
%239 = add nsw i32 %237, %238
store i32 %239, i32* %18
%240 = load i32, i32* %19
%241 = load i32, i32* %16
%242 = add nsw i32 %240, %241
store i32 %242, i32* %51
%243 = load i32, i32* %51
%244 = sext i32 %243 to i64
%245 = mul nsw i64 %244, 1785567396
store i64 %245, i64* %5
%246 = load i64, i64* %5
%247 = add nsw i64 %246, 536870912
store i64 %247, i64* %4
%248 = load i64, i64* %4
%249 = ashr i64 %248, 30
store i64 %249, i64* %3
%250 = load i64, i64* %3
%251 = trunc i64 %250 to i32
store i32 %251, i32* %13
%252 = load i32, i32* %16
%253 = sext i32 %252 to i64
%254 = mul nsw i64 %253, -1489322693
store i64 %254, i64* %5
%255 = load i64, i64* %5
%256 = add nsw i64 %255, 536870912
store i64 %256, i64* %4
%257 = load i64, i64* %4
%258 = ashr i64 %257, 30
store i64 %258, i64* %3
%259 = load i64, i64* %3
%260 = trunc i64 %259 to i32
store i32 %260, i32* %50
%261 = load i32, i32* %13
%262 = add nsw i32 %261, 1
store i32 %262, i32* %9
%263 = load i32, i32* %9
%264 = ashr i32 %263, 1
store i32 %264, i32* %8
%265 = load i32, i32* %50
%266 = load i32, i32* %8
%267 = add nsw i32 %265, %266
store i32 %267, i32* %16
%268 = load i32, i32* %19
%269 = sext i32 %268 to i64
%270 = mul nsw i64 %269, -592489406
store i64 %270, i64* %5
%271 = load i64, i64* %5
%272 = add nsw i64 %271, 268435456
store i64 %272, i64* %4
%273 = load i64, i64* %4
%274 = ashr i64 %273, 29
store i64 %274, i64* %3
%275 = load i64, i64* %3
%276 = trunc i64 %275 to i32
store i32 %276, i32* %49
%277 = load i32, i32* %49
%278 = add nsw i32 %277, 1
store i32 %278, i32* %7
%279 = load i32, i32* %7
%280 = ashr i32 %279, 1
store i32 %280, i32* %6
%281 = load i32, i32* %6
%282 = load i32, i32* %13
%283 = add nsw i32 %281, %282
store i32 %283, i32* %19
%284 = load i32, i32* %15
%285 = load i32, i32* %14
%286 = add nsw i32 %284, %285
store i32 %286, i32* %13
%287 = load i32, i32* %15
%288 = load i32, i32* %14
%289 = sub nsw i32 %287, %288
store i32 %289, i32* %15
%290 = load i32, i32* %19
%291 = add nsw i32 %290, 1
store i32 %291, i32* %7
%292 = load i32, i32* %7
%293 = ashr i32 %292, 1
store i32 %293, i32* %6
%294 = load i32, i32* %6
%295 = load i32, i32* %17
%296 = add nsw i32 %294, %295
store i32 %296, i32* %14
%297 = load i32, i32* %19
%298 = add nsw i32 %297, 1
store i32 %298, i32* %7
%299 = load i32, i32* %7
%300 = ashr i32 %299, 1
store i32 %300, i32* %6
%301 = load i32, i32* %6
%302 = load i32, i32* %17
%303 = sub nsw i32 %301, %302
store i32 %303, i32* %19
%304 = load i32, i32* %18
%305 = add nsw i32 %304, 1
store i32 %305, i32* %9
%306 = load i32, i32* %9
%307 = ashr i32 %306, 1
store i32 %307, i32* %8
%308 = load i32, i32* %16
%309 = load i32, i32* %8
%310 = add nsw i32 %308, %309
store i32 %310, i32* %17
%311 = load i32, i32* %18
%312 = add nsw i32 %311, 1
store i32 %312, i32* %9
%313 = load i32, i32* %9
%314 = ashr i32 %313, 1
store i32 %314, i32* %8
%315 = load i32, i32* %16
%316 = load i32, i32* %8
%317 = sub nsw i32 %315, %316
store i32 %317, i32* %16
%318 = load i32, i32* %12
%319 = load i32, i32* %11
%320 = add nsw i32 %318, %319
store i32 %320, i32* %48
%321 = load i32, i32* %48
%322 = sext i32 %321 to i64
%323 = mul nsw i64 %322, 1162209775
store i64 %323, i64* %5
%324 = load i64, i64* %5
%325 = add nsw i64 %324, 536870912
store i64 %325, i64* %4
%326 = load i64, i64* %4
%327 = ashr i64 %326, 30
store i64 %327, i64* %3
%328 = load i64, i64* %3
%329 = trunc i64 %328 to i32
store i32 %329, i32* %18
%330 = load i32, i32* %12
%331 = sext i32 %330 to i64
%332 = mul nsw i64 %331, -1984016189
store i64 %332, i64* %5
%333 = load i64, i64* %5
%334 = add nsw i64 %333, 536870912
store i64 %334, i64* %4
%335 = load i64, i64* %4
%336 = ashr i64 %335, 30
store i64 %336, i64* %3
%337 = load i64, i64* %3
%338 = trunc i64 %337 to i32
store i32 %338, i32* %47
%339 = load i32, i32* %18
%340 = add nsw i32 %339, 1
store i32 %340, i32* %9
%341 = load i32, i32* %9
%342 = ashr i32 %341, 1
store i32 %342, i32* %8
%343 = load i32, i32* %47
%344 = load i32, i32* %8
%345 = add nsw i32 %343, %344
store i32 %345, i32* %12
%346 = load i32, i32* %11
%347 = sext i32 %346 to i64
%348 = mul nsw i64 %347, 1643612827
store i64 %348, i64* %5
%349 = load i64, i64* %5
%350 = add nsw i64 %349, 536870912
store i64 %350, i64* %4
%351 = load i64, i64* %4
%352 = ashr i64 %351, 30
store i64 %352, i64* %3
%353 = load i64, i64* %3
%354 = trunc i64 %353 to i32
store i32 %354, i32* %46
%355 = load i32, i32* %46
%356 = load i32, i32* %18
%357 = add nsw i32 %355, %356
store i32 %357, i32* %11
%358 = load i32, i32* %21
store i32 %358, i32* %57
%359 = load i32, i32* %57
%360 = mul nsw i32 %359, 64
store i32 %360, i32* %56
%361 = load i32, i32* %56
%362 = ashr i32 %361, 1
store i32 %362, i32* %10
%363 = load i32*, i32** %2
%364 = load i32, i32* %10
%365 = sext i32 %364 to i64
%366 = udiv i64 %365, 4
%367 = getelementptr inbounds i32, i32* %363, i64 %366
store i32* %367, i32** %55
%368 = load i32, i32* %13
%369 = load i32*, i32** %55
%370 = getelementptr inbounds i32, i32* %369, i64 0
store i32 %368, i32* %370
%371 = load i32, i32* %21
store i32 %371, i32* %57
%372 = load i32, i32* %57
%373 = mul nsw i32 %372, 64
store i32 %373, i32* %56
%374 = load i32, i32* %56
%375 = ashr i32 %374, 1
store i32 %375, i32* %10
%376 = load i32*, i32** %2
%377 = load i32, i32* %10
%378 = sext i32 %377 to i64
%379 = udiv i64 %378, 4
%380 = getelementptr inbounds i32, i32* %376, i64 %379
store i32* %380, i32** %55
%381 = load i32, i32* %15
%382 = load i32*, i32** %55
%383 = getelementptr inbounds i32, i32* %382, i64 4
store i32 %381, i32* %383
%384 = load i32, i32* %21
store i32 %384, i32* %57
%385 = load i32, i32* %57
%386 = mul nsw i32 %385, 64
store i32 %386, i32* %56
%387 = load i32, i32* %56
%388 = ashr i32 %387, 1
store i32 %388, i32* %10
%389 = load i32*, i32** %2
%390 = load i32, i32* %10
%391 = sext i32 %390 to i64
%392 = udiv i64 %391, 4
%393 = getelementptr inbounds i32, i32* %389, i64 %392
store i32* %393, i32** %55
%394 = load i32, i32* %11
%395 = add nsw i32 %394, 1
store i32 %395, i32* %7
%396 = load i32, i32* %7
%397 = ashr i32 %396, 1
store i32 %397, i32* %6
%398 = load i32, i32* %6
%399 = load i32*, i32** %55
%400 = getelementptr inbounds i32, i32* %399, i64 2
store i32 %398, i32* %400
%401 = load i32, i32* %21
store i32 %401, i32* %57
%402 = load i32, i32* %57
%403 = mul nsw i32 %402, 64
store i32 %403, i32* %56
%404 = load i32, i32* %56
%405 = ashr i32 %404, 1
store i32 %405, i32* %10
%406 = load i32*, i32** %2
%407 = load i32, i32* %10
%408 = sext i32 %407 to i64
%409 = udiv i64 %408, 4
%410 = getelementptr inbounds i32, i32* %406, i64 %409
store i32* %410, i32** %55
%411 = load i32, i32* %12
%412 = load i32*, i32** %55
%413 = getelementptr inbounds i32, i32* %412, i64 6
store i32 %411, i32* %413
%414 = load i32, i32* %21
store i32 %414, i32* %57
%415 = load i32, i32* %57
%416 = mul nsw i32 %415, 64
store i32 %416, i32* %56
%417 = load i32, i32* %56
%418 = ashr i32 %417, 1
store i32 %418, i32* %10
%419 = load i32*, i32** %2
%420 = load i32, i32* %10
%421 = sext i32 %420 to i64
%422 = udiv i64 %421, 4
%423 = getelementptr inbounds i32, i32* %419, i64 %422
store i32* %423, i32** %55
%424 = load i32, i32* %17
%425 = load i32, i32* %14
%426 = sub nsw i32 %424, %425
store i32 %426, i32* %45
%427 = load i32, i32* %45
%428 = load i32*, i32** %55
%429 = getelementptr inbounds i32, i32* %428, i64 7
store i32 %427, i32* %429
%430 = load i32, i32* %21
store i32 %430, i32* %57
%431 = load i32, i32* %57
%432 = mul nsw i32 %431, 64
store i32 %432, i32* %56
%433 = load i32, i32* %56
%434 = ashr i32 %433, 1
store i32 %434, i32* %10
%435 = load i32*, i32** %2
%436 = load i32, i32* %10
%437 = sext i32 %436 to i64
%438 = udiv i64 %437, 4
%439 = getelementptr inbounds i32, i32* %435, i64 %438
store i32* %439, i32** %55
%440 = load i32, i32* %17
%441 = load i32, i32* %14
%442 = add nsw i32 %440, %441
store i32 %442, i32* %44
%443 = load i32, i32* %44
%444 = load i32*, i32** %55
%445 = getelementptr inbounds i32, i32* %444, i64 1
store i32 %443, i32* %445
%446 = load i32, i32* %21
store i32 %446, i32* %57
%447 = load i32, i32* %57
%448 = mul nsw i32 %447, 64
store i32 %448, i32* %56
%449 = load i32, i32* %56
%450 = ashr i32 %449, 1
store i32 %450, i32* %10
%451 = load i32*, i32** %2
%452 = load i32, i32* %10
%453 = sext i32 %452 to i64
%454 = udiv i64 %453, 4
%455 = getelementptr inbounds i32, i32* %451, i64 %454
store i32* %455, i32** %55
%456 = load i32, i32* %16
%457 = sext i32 %456 to i64
%458 = mul nsw i64 %457, 1518500250
store i64 %458, i64* %5
%459 = load i64, i64* %5
%460 = add nsw i64 %459, 536870912
store i64 %460, i64* %4
%461 = load i64, i64* %4
%462 = ashr i64 %461, 30
store i64 %462, i64* %3
%463 = load i64, i64* %3
%464 = trunc i64 %463 to i32
store i32 %464, i32* %43
%465 = load i32, i32* %43
%466 = load i32*, i32** %55
%467 = getelementptr inbounds i32, i32* %466, i64 3
store i32 %465, i32* %467
%468 = load i32, i32* %21
store i32 %468, i32* %57
%469 = load i32, i32* %57
%470 = mul nsw i32 %469, 64
store i32 %470, i32* %56
%471 = load i32, i32* %56
%472 = ashr i32 %471, 1
store i32 %472, i32* %10
%473 = load i32*, i32** %2
%474 = load i32, i32* %10
%475 = sext i32 %474 to i64
%476 = udiv i64 %475, 4
%477 = getelementptr inbounds i32, i32* %473, i64 %476
store i32* %477, i32** %55
%478 = load i32, i32* %19
%479 = sext i32 %478 to i64
%480 = mul nsw i64 %479, 1518500250
store i64 %480, i64* %5
%481 = load i64, i64* %5
%482 = add nsw i64 %481, 536870912
store i64 %482, i64* %4
%483 = load i64, i64* %4
%484 = ashr i64 %483, 30
store i64 %484, i64* %3
%485 = load i64, i64* %3
%486 = trunc i64 %485 to i32
store i32 %486, i32* %42
%487 = load i32, i32* %42
%488 = load i32*, i32** %55
%489 = getelementptr inbounds i32, i32* %488, i64 5
store i32 %487, i32* %489
%490 = load i32, i32* %21
%491 = add nsw i32 %490, 1
store i32 %491, i32* %21
br label %492
492: ; preds = %59, %58
%493 = load i32, i32* %21
%494 = icmp sle i32 %493, 7
br i1 %494, label %495, label %496
495: ; preds = %492
br label %59
496: ; preds = %492
br label %497
497: ; preds = %496
store i32 0, i32* %20
br label %831
498: ; preds = %834
%499 = load i32*, i32** %2
%500 = load i32, i32* %20
%501 = sext i32 %500 to i64
%502 = getelementptr inbounds i32, i32* %499, i64 %501
%503 = load i32, i32* %502
store i32 %503, i32* %19
%504 = load i32*, i32** %2
%505 = getelementptr inbounds i32, i32* %504, i64 8
store i32* %505, i32** %41
%506 = load i32*, i32** %41
%507 = load i32, i32* %20
%508 = sext i32 %507 to i64
%509 = getelementptr inbounds i32, i32* %506, i64 %508
%510 = load i32, i32* %509
store i32 %510, i32* %18
%511 = load i32*, i32** %2
%512 = getelementptr inbounds i32, i32* %511, i64 16
store i32* %512, i32** %40
%513 = load i32*, i32** %40
%514 = load i32, i32* %20
%515 = sext i32 %514 to i64
%516 = getelementptr inbounds i32, i32* %513, i64 %515
%517 = load i32, i32* %516
store i32 %517, i32* %17
%518 = load i32*, i32** %2
%519 = getelementptr inbounds i32, i32* %518, i64 24
store i32* %519, i32** %39
%520 = load i32*, i32** %39
%521 = load i32, i32* %20
%522 = sext i32 %521 to i64
%523 = getelementptr inbounds i32, i32* %520, i64 %522
%524 = load i32, i32* %523
store i32 %524, i32* %16
%525 = load i32*, i32** %2
%526 = getelementptr inbounds i32, i32* %525, i64 32
store i32* %526, i32** %38
%527 = load i32*, i32** %38
%528 = load i32, i32* %20
%529 = sext i32 %528 to i64
%530 = getelementptr inbounds i32, i32* %527, i64 %529
%531 = load i32, i32* %530
store i32 %531, i32* %15
%532 = load i32*, i32** %2
%533 = getelementptr inbounds i32, i32* %532, i64 40
store i32* %533, i32** %37
%534 = load i32*, i32** %37
%535 = load i32, i32* %20
%536 = sext i32 %535 to i64
%537 = getelementptr inbounds i32, i32* %534, i64 %536
%538 = load i32, i32* %537
store i32 %538, i32* %14
%539 = load i32*, i32** %2
%540 = getelementptr inbounds i32, i32* %539, i64 48
store i32* %540, i32** %36
%541 = load i32*, i32** %36
%542 = load i32, i32* %20
%543 = sext i32 %542 to i64
%544 = getelementptr inbounds i32, i32* %541, i64 %543
%545 = load i32, i32* %544
store i32 %545, i32* %13
%546 = load i32*, i32** %2
%547 = getelementptr inbounds i32, i32* %546, i64 56
store i32* %547, i32** %35
%548 = load i32*, i32** %35
%549 = load i32, i32* %20
%550 = sext i32 %549 to i64
%551 = getelementptr inbounds i32, i32* %548, i64 %550
%552 = load i32, i32* %551
store i32 %552, i32* %12
%553 = load i32, i32* %12
%554 = load i32, i32* %19
%555 = add nsw i32 %553, %554
store i32 %555, i32* %11
%556 = load i32, i32* %19
%557 = load i32, i32* %12
%558 = sub nsw i32 %556, %557
store i32 %558, i32* %19
%559 = load i32, i32* %18
%560 = load i32, i32* %13
%561 = add nsw i32 %559, %560
store i32 %561, i32* %12
%562 = load i32, i32* %18
%563 = load i32, i32* %13
%564 = sub nsw i32 %562, %563
store i32 %564, i32* %18
%565 = load i32, i32* %17
%566 = load i32, i32* %14
%567 = add nsw i32 %565, %566
store i32 %567, i32* %13
%568 = load i32, i32* %17
%569 = load i32, i32* %14
%570 = sub nsw i32 %568, %569
store i32 %570, i32* %17
%571 = load i32, i32* %16
%572 = load i32, i32* %15
%573 = add nsw i32 %571, %572
store i32 %573, i32* %14
%574 = load i32, i32* %16
%575 = load i32, i32* %15
%576 = sub nsw i32 %574, %575
store i32 %576, i32* %16
%577 = load i32, i32* %11
%578 = load i32, i32* %14
%579 = add nsw i32 %577, %578
store i32 %579, i32* %15
%580 = load i32, i32* %11
%581 = load i32, i32* %14
%582 = sub nsw i32 %580, %581
store i32 %582, i32* %11
%583 = load i32, i32* %12
%584 = load i32, i32* %13
%585 = add nsw i32 %583, %584
store i32 %585, i32* %14
%586 = load i32, i32* %12
%587 = load i32, i32* %13
%588 = sub nsw i32 %586, %587
store i32 %588, i32* %12
%589 = load i32, i32* %18
%590 = load i32, i32* %17
%591 = add nsw i32 %589, %590
store i32 %591, i32* %34
%592 = load i32, i32* %34
%593 = sext i32 %592 to i64
%594 = mul nsw i64 %593, 2106220352
store i64 %594, i64* %5
%595 = load i64, i64* %5
%596 = add nsw i64 %595, 536870912
store i64 %596, i64* %4
%597 = load i64, i64* %4
%598 = ashr i64 %597, 30
store i64 %598, i64* %3
%599 = load i64, i64* %3
%600 = trunc i64 %599 to i32
store i32 %600, i32* %13
%601 = load i32, i32* %17
%602 = sext i32 %601 to i64
%603 = mul nsw i64 %602, -1262586814
store i64 %603, i64* %5
%604 = load i64, i64* %5
%605 = add nsw i64 %604, 536870912
store i64 %605, i64* %4
%606 = load i64, i64* %4
%607 = ashr i64 %606, 30
store i64 %607, i64* %3
%608 = load i64, i64* %3
%609 = trunc i64 %608 to i32
store i32 %609, i32* %33
%610 = load i32, i32* %13
%611 = add nsw i32 %610, 1
store i32 %611, i32* %9
%612 = load i32, i32* %9
%613 = ashr i32 %612, 1
store i32 %613, i32* %8
%614 = load i32, i32* %33
%615 = load i32, i32* %8
%616 = add nsw i32 %614, %615
store i32 %616, i32* %17
%617 = load i32, i32* %18
%618 = sext i32 %617 to i64
%619 = mul nsw i64 %618, -1687267075
store i64 %619, i64* %5
%620 = load i64, i64* %5
%621 = add nsw i64 %620, 536870912
store i64 %621, i64* %4
%622 = load i64, i64* %4
%623 = ashr i64 %622, 30
store i64 %623, i64* %3
%624 = load i64, i64* %3
%625 = trunc i64 %624 to i32
store i32 %625, i32* %32
%626 = load i32, i32* %32
%627 = load i32, i32* %13
%628 = add nsw i32 %626, %627
store i32 %628, i32* %18
%629 = load i32, i32* %19
%630 = load i32, i32* %16
%631 = add nsw i32 %629, %630
store i32 %631, i32* %31
%632 = load i32, i32* %31
%633 = sext i32 %632 to i64
%634 = mul nsw i64 %633, 1785567396
store i64 %634, i64* %5
%635 = load i64, i64* %5
%636 = add nsw i64 %635, 536870912
store i64 %636, i64* %4
%637 = load i64, i64* %4
%638 = ashr i64 %637, 30
store i64 %638, i64* %3
%639 = load i64, i64* %3
%640 = trunc i64 %639 to i32
store i32 %640, i32* %13
%641 = load i32, i32* %16
%642 = sext i32 %641 to i64
%643 = mul nsw i64 %642, -1489322693
store i64 %643, i64* %5
%644 = load i64, i64* %5
%645 = add nsw i64 %644, 536870912
store i64 %645, i64* %4
%646 = load i64, i64* %4
%647 = ashr i64 %646, 30
store i64 %647, i64* %3
%648 = load i64, i64* %3
%649 = trunc i64 %648 to i32
store i32 %649, i32* %30
%650 = load i32, i32* %13
%651 = add nsw i32 %650, 1
store i32 %651, i32* %9
%652 = load i32, i32* %9
%653 = ashr i32 %652, 1
store i32 %653, i32* %8
%654 = load i32, i32* %30
%655 = load i32, i32* %8
%656 = add nsw i32 %654, %655
store i32 %656, i32* %16
%657 = load i32, i32* %19
%658 = sext i32 %657 to i64
%659 = mul nsw i64 %658, -592489406
store i64 %659, i64* %5
%660 = load i64, i64* %5
%661 = add nsw i64 %660, 268435456
store i64 %661, i64* %4
%662 = load i64, i64* %4
%663 = ashr i64 %662, 29
store i64 %663, i64* %3
%664 = load i64, i64* %3
%665 = trunc i64 %664 to i32
store i32 %665, i32* %29
%666 = load i32, i32* %29
%667 = add nsw i32 %666, 1
store i32 %667, i32* %7
%668 = load i32, i32* %7
%669 = ashr i32 %668, 1
store i32 %669, i32* %6
%670 = load i32, i32* %6
%671 = load i32, i32* %13
%672 = add nsw i32 %670, %671
store i32 %672, i32* %19
%673 = load i32, i32* %15
%674 = load i32, i32* %14
%675 = add nsw i32 %673, %674
store i32 %675, i32* %13
%676 = load i32, i32* %15
%677 = load i32, i32* %14
%678 = sub nsw i32 %676, %677
store i32 %678, i32* %15
%679 = load i32, i32* %19
%680 = add nsw i32 %679, 1
store i32 %680, i32* %7
%681 = load i32, i32* %7
%682 = ashr i32 %681, 1
store i32 %682, i32* %6
%683 = load i32, i32* %6
%684 = load i32, i32* %17
%685 = add nsw i32 %683, %684
store i32 %685, i32* %14
%686 = load i32, i32* %19
%687 = add nsw i32 %686, 1
store i32 %687, i32* %7
%688 = load i32, i32* %7
%689 = ashr i32 %688, 1
store i32 %689, i32* %6
%690 = load i32, i32* %6
%691 = load i32, i32* %17
%692 = sub nsw i32 %690, %691
store i32 %692, i32* %19
%693 = load i32, i32* %18
%694 = add nsw i32 %693, 1
store i32 %694, i32* %9
%695 = load i32, i32* %9
%696 = ashr i32 %695, 1
store i32 %696, i32* %8
%697 = load i32, i32* %16
%698 = load i32, i32* %8
%699 = add nsw i32 %697, %698
store i32 %699, i32* %17
%700 = load i32, i32* %18
%701 = add nsw i32 %700, 1
store i32 %701, i32* %9
%702 = load i32, i32* %9
%703 = ashr i32 %702, 1
store i32 %703, i32* %8
%704 = load i32, i32* %16
%705 = load i32, i32* %8
%706 = sub nsw i32 %704, %705
store i32 %706, i32* %16
%707 = load i32, i32* %12
%708 = load i32, i32* %11
%709 = add nsw i32 %707, %708
store i32 %709, i32* %28
%710 = load i32, i32* %28
%711 = sext i32 %710 to i64
%712 = mul nsw i64 %711, 1162209775
store i64 %712, i64* %5
%713 = load i64, i64* %5
%714 = add nsw i64 %713, 536870912
store i64 %714, i64* %4
%715 = load i64, i64* %4
%716 = ashr i64 %715, 30
store i64 %716, i64* %3
%717 = load i64, i64* %3
%718 = trunc i64 %717 to i32
store i32 %718, i32* %18
%719 = load i32, i32* %12
%720 = sext i32 %719 to i64
%721 = mul nsw i64 %720, -1984016189
store i64 %721, i64* %5
%722 = load i64, i64* %5
%723 = add nsw i64 %722, 536870912
store i64 %723, i64* %4
%724 = load i64, i64* %4
%725 = ashr i64 %724, 30
store i64 %725, i64* %3
%726 = load i64, i64* %3
%727 = trunc i64 %726 to i32
store i32 %727, i32* %27
%728 = load i32, i32* %18
%729 = add nsw i32 %728, 1
store i32 %729, i32* %9
%730 = load i32, i32* %9
%731 = ashr i32 %730, 1
store i32 %731, i32* %8
%732 = load i32, i32* %27
%733 = load i32, i32* %8
%734 = add nsw i32 %732, %733
store i32 %734, i32* %12
%735 = load i32, i32* %11
%736 = sext i32 %735 to i64
%737 = mul nsw i64 %736, 1643612827
store i64 %737, i64* %5
%738 = load i64, i64* %5
%739 = add nsw i64 %738, 536870912
store i64 %739, i64* %4
%740 = load i64, i64* %4
%741 = ashr i64 %740, 30
store i64 %741, i64* %3
%742 = load i64, i64* %3
%743 = trunc i64 %742 to i32
store i32 %743, i32* %26
%744 = load i32, i32* %26
%745 = load i32, i32* %18
%746 = add nsw i32 %744, %745
store i32 %746, i32* %11
%747 = load i32, i32* %13
%748 = load i32*, i32** %2
%749 = load i32, i32* %20
%750 = sext i32 %749 to i64
%751 = getelementptr inbounds i32, i32* %748, i64 %750
store i32 %747, i32* %751
%752 = load i32*, i32** %2
%753 = getelementptr inbounds i32, i32* %752, i64 32
store i32* %753, i32** %38
%754 = load i32, i32* %15
%755 = load i32*, i32** %38
%756 = load i32, i32* %20
%757 = sext i32 %756 to i64
%758 = getelementptr inbounds i32, i32* %755, i64 %757
store i32 %754, i32* %758
%759 = load i32*, i32** %2
%760 = getelementptr inbounds i32, i32* %759, i64 16
store i32* %760, i32** %40
%761 = load i32, i32* %11
%762 = add nsw i32 %761, 1
store i32 %762, i32* %7
%763 = load i32, i32* %7
%764 = ashr i32 %763, 1
store i32 %764, i32* %6
%765 = load i32, i32* %6
%766 = load i32*, i32** %40
%767 = load i32, i32* %20
%768 = sext i32 %767 to i64
%769 = getelementptr inbounds i32, i32* %766, i64 %768
store i32 %765, i32* %769
%770 = load i32*, i32** %2
%771 = getelementptr inbounds i32, i32* %770, i64 48
store i32* %771, i32** %36
%772 = load i32, i32* %12
%773 = load i32*, i32** %36
%774 = load i32, i32* %20
%775 = sext i32 %774 to i64
%776 = getelementptr inbounds i32, i32* %773, i64 %775
store i32 %772, i32* %776
%777 = load i32*, i32** %2
%778 = getelementptr inbounds i32, i32* %777, i64 56
store i32* %778, i32** %35
%779 = load i32, i32* %17
%780 = load i32, i32* %14
%781 = sub nsw i32 %779, %780
store i32 %781, i32* %25
%782 = load i32, i32* %25
%783 = load i32*, i32** %35
%784 = load i32, i32* %20
%785 = sext i32 %784 to i64
%786 = getelementptr inbounds i32, i32* %783, i64 %785
store i32 %782, i32* %786
%787 = load i32*, i32** %2
%788 = getelementptr inbounds i32, i32* %787, i64 8
store i32* %788, i32** %41
%789 = load i32, i32* %17
%790 = load i32, i32* %14
%791 = add nsw i32 %789, %790
store i32 %791, i32* %24
%792 = load i32, i32* %24
%793 = load i32*, i32** %41
%794 = load i32, i32* %20
%795 = sext i32 %794 to i64
%796 = getelementptr inbounds i32, i32* %793, i64 %795
store i32 %792, i32* %796
%797 = load i32*, i32** %2
%798 = getelementptr inbounds i32, i32* %797, i64 24
store i32* %798, i32** %39
%799 = load i32, i32* %16
%800 = sext i32 %799 to i64
%801 = mul nsw i64 %800, 1518500250
store i64 %801, i64* %5
%802 = load i64, i64* %5
%803 = add nsw i64 %802, 536870912
store i64 %803, i64* %4
%804 = load i64, i64* %4
%805 = ashr i64 %804, 30
store i64 %805, i64* %3
%806 = load i64, i64* %3
%807 = trunc i64 %806 to i32
store i32 %807, i32* %23
%808 = load i32, i32* %23
%809 = load i32*, i32** %39
%810 = load i32, i32* %20
%811 = sext i32 %810 to i64
%812 = getelementptr inbounds i32, i32* %809, i64 %811
store i32 %808, i32* %812
%813 = load i32*, i32** %2
%814 = getelementptr inbounds i32, i32* %813, i64 40
store i32* %814, i32** %37
%815 = load i32, i32* %19
%816 = sext i32 %815 to i64
%817 = mul nsw i64 %816, 1518500250
store i64 %817, i64* %5
%818 = load i64, i64* %5
%819 = add nsw i64 %818, 536870912
store i64 %819, i64* %4
%820 = load i64, i64* %4
%821 = ashr i64 %820, 30
store i64 %821, i64* %3
%822 = load i64, i64* %3
%823 = trunc i64 %822 to i32
store i32 %823, i32* %22
%824 = load i32, i32* %22
%825 = load i32*, i32** %37
%826 = load i32, i32* %20
%827 = sext i32 %826 to i64
%828 = getelementptr inbounds i32, i32* %825, i64 %827
store i32 %824, i32* %828
%829 = load i32, i32* %20
%830 = add nsw i32 %829, 1
store i32 %830, i32* %20
br label %831
831: ; preds = %498, %497
%832 = load i32, i32* %20
%833 = icmp sle i32 %832, 7
br i1 %833, label %834, label %835
834: ; preds = %831
br label %498
835: ; preds = %831
br label %836
836: ; preds = %835
ret i32 0
}

LLVM IR (-O2):
define i32 @dct(i32* nocapture %0) {
br label %141
2: ; preds = %141
%3 = getelementptr inbounds i32, i32* %0, i64 8
%4 = getelementptr inbounds i32, i32* %0, i64 16
%5 = getelementptr inbounds i32, i32* %0, i64 24
%6 = getelementptr inbounds i32, i32* %0, i64 32
%7 = getelementptr inbounds i32, i32* %0, i64 40
%8 = getelementptr inbounds i32, i32* %0, i64 48
%9 = getelementptr inbounds i32, i32* %0, i64 56
br label %10
10: ; preds = %10, %2
%11 = phi i64 [ 0, %2 ], [ %139, %10 ]
%12 = getelementptr inbounds i32, i32* %0, i64 %11
%13 = bitcast i32* %12 to <4 x i32>*
%14 = load <4 x i32>, <4 x i32>* %13
%15 = getelementptr inbounds i32, i32* %3, i64 %11
%16 = bitcast i32* %15 to <4 x i32>*
%17 = load <4 x i32>, <4 x i32>* %16
%18 = getelementptr inbounds i32, i32* %4, i64 %11
%19 = bitcast i32* %18 to <4 x i32>*
%20 = load <4 x i32>, <4 x i32>* %19
%21 = getelementptr inbounds i32, i32* %5, i64 %11
%22 = bitcast i32* %21 to <4 x i32>*
%23 = load <4 x i32>, <4 x i32>* %22
%24 = getelementptr inbounds i32, i32* %6, i64 %11
%25 = bitcast i32* %24 to <4 x i32>*
%26 = load <4 x i32>, <4 x i32>* %25
%27 = getelementptr inbounds i32, i32* %7, i64 %11
%28 = bitcast i32* %27 to <4 x i32>*
%29 = load <4 x i32>, <4 x i32>* %28
%30 = getelementptr inbounds i32, i32* %8, i64 %11
%31 = bitcast i32* %30 to <4 x i32>*
%32 = load <4 x i32>, <4 x i32>* %31
%33 = getelementptr inbounds i32, i32* %9, i64 %11
%34 = bitcast i32* %33 to <4 x i32>*
%35 = load <4 x i32>, <4 x i32>* %34
%36 = add nsw <4 x i32> %35, %14
%37 = sub nsw <4 x i32> %14, %35
%38 = add nsw <4 x i32> %32, %17
%39 = sub nsw <4 x i32> %17, %32
%40 = add nsw <4 x i32> %29, %20
%41 = sub nsw <4 x i32> %20, %29
%42 = add nsw <4 x i32> %26, %23
%43 = sub nsw <4 x i32> %23, %26
%44 = add nsw <4 x i32> %36, %42
%45 = sub nsw <4 x i32> %36, %42
%46 = add nsw <4 x i32> %38, %40
%47 = sub nsw <4 x i32> %38, %40
%48 = add nsw <4 x i32> %39, %41
%49 = sext <4 x i32> %48 to <4 x i64>
%50 = mul nsw <4 x i64> %49, <i64 2106220352, i64 2106220352, i64 2106220352, i64 2106220352>
%51 = add nsw <4 x i64> %50, <i64 536870912, i64 536870912, i64 536870912, i64 536870912>
%52 = lshr <4 x i64> %51, <i64 30, i64 30, i64 30, i64 30>
%53 = trunc <4 x i64> %52 to <4 x i32>
%54 = sext <4 x i32> %41 to <4 x i64>
%55 = mul nsw <4 x i64> %54, <i64 -1262586814, i64 -1262586814, i64 -1262586814, i64 -1262586814>
%56 = add nsw <4 x i64> %55, <i64 536870912, i64 536870912, i64 536870912, i64 536870912>
%57 = lshr <4 x i64> %56, <i64 30, i64 30, i64 30, i64 30>
%58 = trunc <4 x i64> %57 to <4 x i32>
%59 = add <4 x i32> %53, <i32 1, i32 1, i32 1, i32 1>
%60 = ashr <4 x i32> %59, <i32 1, i32 1, i32 1, i32 1>
%61 = add nsw <4 x i32> %60, %58
%62 = sext <4 x i32> %39 to <4 x i64>
%63 = mul nsw <4 x i64> %62, <i64 -1687267075, i64 -1687267075, i64 -1687267075, i64 -1687267075>
%64 = add nsw <4 x i64> %63, <i64 536870912, i64 536870912, i64 536870912, i64 536870912>
%65 = lshr <4 x i64> %64, <i64 30, i64 30, i64 30, i64 30>
%66 = trunc <4 x i64> %65 to <4 x i32>
%67 = add nsw <4 x i32> %37, %43
%68 = sext <4 x i32> %67 to <4 x i64>
%69 = mul nsw <4 x i64> %68, <i64 1785567396, i64 1785567396, i64 1785567396, i64 1785567396>
%70 = add nsw <4 x i64> %69, <i64 536870912, i64 536870912, i64 536870912, i64 536870912>
%71 = lshr <4 x i64> %70, <i64 30, i64 30, i64 30, i64 30>
%72 = trunc <4 x i64> %71 to <4 x i32>
%73 = sext <4 x i32> %43 to <4 x i64>
%74 = mul nsw <4 x i64> %73, <i64 -1489322693, i64 -1489322693, i64 -1489322693, i64 -1489322693>
%75 = add nsw <4 x i64> %74, <i64 536870912, i64 536870912, i64 536870912, i64 536870912>
%76 = lshr <4 x i64> %75, <i64 30, i64 30, i64 30, i64 30>
%77 = trunc <4 x i64> %76 to <4 x i32>
%78 = add <4 x i32> %72, <i32 1, i32 1, i32 1, i32 1>
%79 = ashr <4 x i32> %78, <i32 1, i32 1, i32 1, i32 1>
%80 = add nsw <4 x i32> %79, %77
%81 = sext <4 x i32> %37 to <4 x i64>
%82 = mul nsw <4 x i64> %81, <i64 -592489406, i64 -592489406, i64 -592489406, i64 -592489406>
%83 = add nsw <4 x i64> %82, <i64 268435456, i64 268435456, i64 268435456, i64 268435456>
%84 = lshr <4 x i64> %83, <i64 29, i64 29, i64 29, i64 29>
%85 = trunc <4 x i64> %84 to <4 x i32>
%86 = add nsw <4 x i32> %85, <i32 1, i32 1, i32 1, i32 1>
%87 = ashr <4 x i32> %86, <i32 1, i32 1, i32 1, i32 1>
%88 = add nsw <4 x i32> %44, %46
%89 = sub nsw <4 x i32> %44, %46
%90 = add <4 x i32> %78, %87
%91 = ashr <4 x i32> %90, <i32 1, i32 1, i32 1, i32 1>
%92 = add nsw <4 x i32> %91, %61
%93 = sub nsw <4 x i32> %91, %61
%94 = add <4 x i32> %59, %66
%95 = ashr <4 x i32> %94, <i32 1, i32 1, i32 1, i32 1>
%96 = add nsw <4 x i32> %80, %95
%97 = sub nsw <4 x i32> %80, %95
%98 = add nsw <4 x i32> %45, %47
%99 = sext <4 x i32> %98 to <4 x i64>
%100 = mul nsw <4 x i64> %99, <i64 1162209775, i64 1162209775, i64 1162209775, i64 1162209775>
%101 = add nsw <4 x i64> %100, <i64 536870912, i64 536870912, i64 536870912, i64 536870912>
%102 = lshr <4 x i64> %101, <i64 30, i64 30, i64 30, i64 30>
%103 = trunc <4 x i64> %102 to <4 x i32>
%104 = sext <4 x i32> %47 to <4 x i64>
%105 = mul nsw <4 x i64> %104, <i64 -1984016189, i64 -1984016189, i64 -1984016189, i64 -1984016189>
%106 = add nsw <4 x i64> %105, <i64 536870912, i64 536870912, i64 536870912, i64 536870912>
%107 = lshr <4 x i64> %106, <i64 30, i64 30, i64 30, i64 30>
%108 = trunc <4 x i64> %107 to <4 x i32>
%109 = add <4 x i32> %103, <i32 1, i32 1, i32 1, i32 1>
%110 = ashr <4 x i32> %109, <i32 1, i32 1, i32 1, i32 1>
%111 = add nsw <4 x i32> %110, %108
%112 = sext <4 x i32> %45 to <4 x i64>
%113 = mul nsw <4 x i64> %112, <i64 1643612827, i64 1643612827, i64 1643612827, i64 1643612827>
%114 = add nsw <4 x i64> %113, <i64 536870912, i64 536870912, i64 536870912, i64 536870912>
%115 = lshr <4 x i64> %114, <i64 30, i64 30, i64 30, i64 30>
%116 = trunc <4 x i64> %115 to <4 x i32>
%117 = bitcast i32* %12 to <4 x i32>*
store <4 x i32> %88, <4 x i32>* %117
%118 = bitcast i32* %24 to <4 x i32>*
store <4 x i32> %89, <4 x i32>* %118
%119 = add <4 x i32> %109, %116
%120 = ashr <4 x i32> %119, <i32 1, i32 1, i32 1, i32 1>
%121 = bitcast i32* %18 to <4 x i32>*
store <4 x i32> %120, <4 x i32>* %121
%122 = bitcast i32* %30 to <4 x i32>*
store <4 x i32> %111, <4 x i32>* %122
%123 = sub nsw <4 x i32> %96, %92
%124 = bitcast i32* %33 to <4 x i32>*
store <4 x i32> %123, <4 x i32>* %124
%125 = add nsw <4 x i32> %96, %92
%126 = bitcast i32* %15 to <4 x i32>*
store <4 x i32> %125, <4 x i32>* %126
%127 = sext <4 x i32> %97 to <4 x i64>
%128 = mul nsw <4 x i64> %127, <i64 1518500250, i64 1518500250, i64 1518500250, i64 1518500250>
%129 = add nsw <4 x i64> %128, <i64 536870912, i64 536870912, i64 536870912, i64 536870912>
%130 = lshr <4 x i64> %129, <i64 30, i64 30, i64 30, i64 30>
%131 = trunc <4 x i64> %130 to <4 x i32>
%132 = bitcast i32* %21 to <4 x i32>*
store <4 x i32> %131, <4 x i32>* %132
%133 = sext <4 x i32> %93 to <4 x i64>
%134 = mul nsw <4 x i64> %133, <i64 1518500250, i64 1518500250, i64 1518500250, i64 1518500250>
%135 = add nsw <4 x i64> %134, <i64 536870912, i64 536870912, i64 536870912, i64 536870912>
%136 = lshr <4 x i64> %135, <i64 30, i64 30, i64 30, i64 30>
%137 = trunc <4 x i64> %136 to <4 x i32>
%138 = bitcast i32* %27 to <4 x i32>*
store <4 x i32> %137, <4 x i32>* %138
%139 = add nuw i64 %11, 4
%140 = icmp eq i64 %139, 8
br i1 %140, label %257, label %10
141: ; preds = %1, %141
%142 = phi i64 [ 0, %1 ], [ %255, %141 ]
%143 = shl nuw nsw i64 %142, 3
%144 = getelementptr inbounds i32, i32* %0, i64 %143
%145 = load i32, i32* %144
%146 = getelementptr inbounds i32, i32* %144, i64 1
%147 = load i32, i32* %146
%148 = getelementptr inbounds i32, i32* %144, i64 2
%149 = load i32, i32* %148
%150 = getelementptr inbounds i32, i32* %144, i64 3
%151 = load i32, i32* %150
%152 = getelementptr inbounds i32, i32* %144, i64 4
%153 = load i32, i32* %152
%154 = getelementptr inbounds i32, i32* %144, i64 5
%155 = load i32, i32* %154
%156 = getelementptr inbounds i32, i32* %144, i64 6
%157 = load i32, i32* %156
%158 = getelementptr inbounds i32, i32* %144, i64 7
%159 = load i32, i32* %158
%160 = add nsw i32 %159, %145
%161 = sub nsw i32 %145, %159
%162 = add nsw i32 %157, %147
%163 = sub nsw i32 %147, %157
%164 = add nsw i32 %155, %149
%165 = sub nsw i32 %149, %155
%166 = add nsw i32 %153, %151
%167 = sub nsw i32 %151, %153
%168 = add nsw i32 %160, %166
%169 = sub nsw i32 %160, %166
%170 = add nsw i32 %162, %164
%171 = sub nsw i32 %162, %164
%172 = add nsw i32 %163, %165
%173 = sext i32 %172 to i64
%174 = mul nsw i64 %173, 2106220352
%175 = add nsw i64 %174, 536870912
%176 = lshr i64 %175, 30
%177 = trunc i64 %176 to i32
%178 = sext i32 %165 to i64
%179 = mul nsw i64 %178, -1262586814
%180 = add nsw i64 %179, 536870912
%181 = lshr i64 %180, 30
%182 = trunc i64 %181 to i32
%183 = add i32 %177, 1
%184 = ashr i32 %183, 1
%185 = add nsw i32 %184, %182
%186 = sext i32 %163 to i64
%187 = mul nsw i64 %186, -1687267075
%188 = add nsw i64 %187, 536870912
%189 = lshr i64 %188, 30
%190 = trunc i64 %189 to i32
%191 = add nsw i32 %161, %167
%192 = sext i32 %191 to i64
%193 = mul nsw i64 %192, 1785567396
%194 = add nsw i64 %193, 536870912
%195 = lshr i64 %194, 30
%196 = trunc i64 %195 to i32
%197 = sext i32 %167 to i64
%198 = mul nsw i64 %197, -1489322693
%199 = add nsw i64 %198, 536870912
%200 = lshr i64 %199, 30
%201 = trunc i64 %200 to i32
%202 = add i32 %196, 1
%203 = ashr i32 %202, 1
%204 = add nsw i32 %203, %201
%205 = sext i32 %161 to i64
%206 = mul nsw i64 %205, -592489406
%207 = add nsw i64 %206, 268435456
%208 = lshr i64 %207, 29
%209 = trunc i64 %208 to i32
%210 = add nsw i32 %209, 1
%211 = ashr i32 %210, 1
%212 = add nsw i32 %168, %170
%213 = sub nsw i32 %168, %170
%214 = add i32 %202, %211
%215 = ashr i32 %214, 1
%216 = add nsw i32 %215, %185
%217 = sub nsw i32 %215, %185
%218 = add i32 %183, %190
%219 = ashr i32 %218, 1
%220 = add nsw i32 %204, %219
%221 = sub nsw i32 %204, %219
%222 = add nsw i32 %169, %171
%223 = sext i32 %222 to i64
%224 = mul nsw i64 %223, 1162209775
%225 = add nsw i64 %224, 536870912
%226 = lshr i64 %225, 30
%227 = trunc i64 %226 to i32
%228 = sext i32 %171 to i64
%229 = mul nsw i64 %228, -1984016189
%230 = add nsw i64 %229, 536870912
%231 = lshr i64 %230, 30
%232 = trunc i64 %231 to i32
%233 = add i32 %227, 1
%234 = ashr i32 %233, 1
%235 = add nsw i32 %234, %232
%236 = sext i32 %169 to i64
%237 = mul nsw i64 %236, 1643612827
%238 = add nsw i64 %237, 536870912
%239 = lshr i64 %238, 30
%240 = trunc i64 %239 to i32
store i32 %212, i32* %144
store i32 %213, i32* %152
%241 = add i32 %233, %240
%242 = ashr i32 %241, 1
store i32 %242, i32* %148
store i32 %235, i32* %156
%243 = sub nsw i32 %220, %216
store i32 %243, i32* %158
%244 = add nsw i32 %220, %216
store i32 %244, i32* %146
%245 = sext i32 %221 to i64
%246 = mul nsw i64 %245, 1518500250
%247 = add nsw i64 %246, 536870912
%248 = lshr i64 %247, 30
%249 = trunc i64 %248 to i32
store i32 %249, i32* %150
%250 = sext i32 %217 to i64
%251 = mul nsw i64 %250, 1518500250
%252 = add nsw i64 %251, 536870912
%253 = lshr i64 %252, 30
%254 = trunc i64 %253 to i32
store i32 %254, i32* %154
%255 = add nuw nsw i64 %142, 1
%256 = icmp eq i64 %255, 8
br i1 %256, label %2, label %141
257: ; preds = %10
ret i32 0
}