#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 int int32_t;

/* Variables and functions */
int32_t dct(int32_t *dctBlock) {
  int32_t shft1L;
  int32_t sround1L;
  int32_t signbit1L;
  int32_t round1L;
  int32_t shft2L;
  int32_t sround2L;
  int32_t signbit2L;
  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;
  signbit1L = D1980 >> 31;
  sround1L = signbit1L + 8192;
  round1L = D1980 + sround1L;
  shft1L = round1L >> 14;
  x6 = shft1L * 32138L;
  signbit1L = x2 >> 31;
  sround1L = signbit1L + 8192;
  round1L = x2 + sround1L;
  shft1L = round1L >> 14;
  D1981 = shft1L * -19266;
  signbit2L = x6 >> 31;
  sround2L = signbit2L + 1;
  round2L = x6 + sround2L;
  shft2L = round2L >> 1;
  x2 = D1981 + shft2L;
  signbit1L = x1 >> 31;
  sround1L = signbit1L + 8192;
  round1L = x1 + sround1L;
  shft1L = round1L >> 14;
  D1982 = shft1L * -25746;
  x1 = D1982 + x6;
  D1983 = x0 + x3;
  signbit1L = D1983 >> 31;
  sround1L = signbit1L + 8192;
  round1L = D1983 + sround1L;
  shft1L = round1L >> 14;
  x6 = shft1L * 27246L;
  signbit1L = x3 >> 31;
  sround1L = signbit1L + 16384L;
  round1L = x3 + sround1L;
  shft1L = round1L >> 15;
  D1984 = shft1L * -45451;
  signbit2L = x6 >> 31;
  sround2L = signbit2L + 1;
  round2L = x6 + sround2L;
  shft2L = round2L >> 1;
  x3 = D1984 + shft2L;
  signbit1L = x0 >> 31;
  sround1L = signbit1L + 16384L;
  round1L = x0 + sround1L;
  shft1L = round1L >> 15;
  D1985 = shft1L * -36163;
  signbit1L = D1985 >> 31;
  sround1L = signbit1L + 1;
  round1L = D1985 + sround1L;
  shft1L = round1L >> 1;
  x0 = shft1L + x6;
  x6 = x4 + x5;
  x4 = x4 - x5;
  signbit1L = x0 >> 31;
  sround1L = signbit1L + 1;
  round1L = x0 + sround1L;
  shft1L = round1L >> 1;
  x5 = shft1L + x2;
  signbit1L = x0 >> 31;
  sround1L = signbit1L + 1;
  round1L = x0 + sround1L;
  shft1L = round1L >> 1;
  x0 = shft1L - x2;
  signbit2L = x1 >> 31;
  sround2L = signbit2L + 1;
  round2L = x1 + sround2L;
  shft2L = round2L >> 1;
  x2 = x3 + shft2L;
  signbit2L = x1 >> 31;
  sround2L = signbit2L + 1;
  round2L = x1 + sround2L;
  shft2L = round2L >> 1;
  x3 = x3 - shft2L;
  D1986 = x7 + x8;
  signbit1L = D1986 >> 31;
  sround1L = signbit1L + 8192;
  round1L = D1986 + sround1L;
  shft1L = round1L >> 14;
  x1 = shft1L * 17734L;
  signbit1L = x7 >> 31;
  sround1L = signbit1L + 8192;
  round1L = x7 + sround1L;
  shft1L = round1L >> 14;
  D1987 = shft1L * -30274;
  signbit2L = x1 >> 31;
  sround2L = signbit2L + 1;
  round2L = x1 + sround2L;
  shft2L = round2L >> 1;
  x7 = D1987 + shft2L;
  signbit1L = x8 >> 31;
  sround1L = signbit1L + 8192;
  round1L = x8 + sround1L;
  shft1L = round1L >> 14;
  D1988 = shft1L * 6270;
  shft1L = D1988 << 1;
  signbit2L = x1 >> 31;
  sround2L = signbit2L + 1;
  round2L = x1 + sround2L;
  shft2L = round2L >> 1;
  x8 = shft1L + shft2L;
  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));
  D1979[2] = x8;
  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));
  signbit1L = x3 >> 31;
  sround1L = signbit1L + 8192;
  round1L = x3 + sround1L;
  shft1L = round1L >> 14;
  D1991 = shft1L * 23170L;
  D1979[3] = D1991;
  row_0 = (uint32_t)row;
  D1978 = row_0 * 64;
  shft2UL = D1978 >> 1;
  D1979 = dctBlock + (shft2UL / sizeof(*dctBlock));
  signbit1L = x0 >> 31;
  sround1L = signbit1L + 8192;
  round1L = x0 + sround1L;
  shft1L = round1L >> 14;
  D1992 = shft1L * 23170L;
  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;
  signbit1L = D2000 >> 31;
  sround1L = signbit1L + 8192;
  round1L = D2000 + sround1L;
  shft1L = round1L >> 14;
  x6 = shft1L * 32138L;
  signbit1L = x2 >> 31;
  sround1L = signbit1L + 8192;
  round1L = x2 + sround1L;
  shft1L = round1L >> 14;
  D2001 = shft1L * -19266;
  signbit2L = x6 >> 31;
  sround2L = signbit2L + 1;
  round2L = x6 + sround2L;
  shft2L = round2L >> 1;
  x2 = D2001 + shft2L;
  signbit1L = x1 >> 31;
  sround1L = signbit1L + 8192;
  round1L = x1 + sround1L;
  shft1L = round1L >> 14;
  D2002 = shft1L * -25746;
  x1 = D2002 + x6;
  D2003 = x0 + x3;
  signbit1L = D2003 >> 31;
  sround1L = signbit1L + 8192;
  round1L = D2003 + sround1L;
  shft1L = round1L >> 14;
  x6 = shft1L * 27246L;
  signbit1L = x3 >> 31;
  sround1L = signbit1L + 16384L;
  round1L = x3 + sround1L;
  shft1L = round1L >> 15;
  D2004 = shft1L * -45451;
  signbit2L = x6 >> 31;
  sround2L = signbit2L + 1;
  round2L = x6 + sround2L;
  shft2L = round2L >> 1;
  x3 = D2004 + shft2L;
  signbit1L = x0 >> 31;
  sround1L = signbit1L + 16384L;
  round1L = x0 + sround1L;
  shft1L = round1L >> 15;
  D2005 = shft1L * -36163;
  signbit1L = D2005 >> 31;
  sround1L = signbit1L + 1;
  round1L = D2005 + sround1L;
  shft1L = round1L >> 1;
  x0 = shft1L + x6;
  x6 = x4 + x5;
  x4 = x4 - x5;
  signbit1L = x0 >> 31;
  sround1L = signbit1L + 1;
  round1L = x0 + sround1L;
  shft1L = round1L >> 1;
  x5 = shft1L + x2;
  signbit1L = x0 >> 31;
  sround1L = signbit1L + 1;
  round1L = x0 + sround1L;
  shft1L = round1L >> 1;
  x0 = shft1L - x2;
  signbit2L = x1 >> 31;
  sround2L = signbit2L + 1;
  round2L = x1 + sround2L;
  shft2L = round2L >> 1;
  x2 = x3 + shft2L;
  signbit2L = x1 >> 31;
  sround2L = signbit2L + 1;
  round2L = x1 + sround2L;
  shft2L = round2L >> 1;
  x3 = x3 - shft2L;
  D2006 = x7 + x8;
  signbit1L = D2006 >> 31;
  sround1L = signbit1L + 8192;
  round1L = D2006 + sround1L;
  shft1L = round1L >> 14;
  x1 = shft1L * 17734L;
  signbit1L = x7 >> 31;
  sround1L = signbit1L + 8192;
  round1L = x7 + sround1L;
  shft1L = round1L >> 14;
  D2007 = shft1L * -30274;
  signbit2L = x1 >> 31;
  sround2L = signbit2L + 1;
  round2L = x1 + sround2L;
  shft2L = round2L >> 1;
  x7 = D2007 + shft2L;
  signbit1L = x8 >> 31;
  sround1L = signbit1L + 8192;
  round1L = x8 + sround1L;
  shft1L = round1L >> 14;
  D2008 = shft1L * 6270;
  shft1L = D2008 << 1;
  signbit2L = x1 >> 31;
  sround2L = signbit2L + 1;
  round2L = x1 + sround2L;
  shft2L = round2L >> 1;
  x8 = shft1L + shft2L;
  dctBlock[col] = x6;
  D1996 = dctBlock + (128 / sizeof(*dctBlock));
  D1996[col] = x4;
  D1994 = dctBlock + (64 / sizeof(*dctBlock));
  D1994[col] = x8;
  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));
  signbit1L = x3 >> 31;
  sround1L = signbit1L + 8192;
  round1L = x3 + sround1L;
  shft1L = round1L >> 14;
  D2011 = shft1L * 23170L;
  D1995[col] = D2011;
  D1997 = dctBlock + (160 / sizeof(*dctBlock));
  signbit1L = x0 >> 31;
  sround1L = signbit1L + 8192;
  round1L = x0 + sround1L;
  shft1L = round1L >> 14;
  D2012 = shft1L * 23170L;
  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    $0x90,%rsp
mov    %rdi,-0x8(%rbp)
movl   $0x0,-0x58(%rbp)
jmp    1aa6 <dct+0x9a6>
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x108(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x50(%rbp)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x108(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x108(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x48(%rbp)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x108(%rbp),%rax
mov    0xc(%rax),%eax
mov    %eax,-0x44(%rbp)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x108(%rbp),%rax
mov    0x10(%rax),%eax
mov    %eax,-0x40(%rbp)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x108(%rbp),%rax
mov    0x14(%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x108(%rbp),%rax
mov    0x18(%rax),%eax
mov    %eax,-0x38(%rbp)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x108(%rbp),%rax
mov    0x1c(%rax),%eax
mov    %eax,-0x34(%rbp)
mov    -0x34(%rbp),%eax
add    -0x50(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x50(%rbp),%eax
sub    -0x34(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x4c(%rbp),%eax
sub    -0x38(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x48(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x48(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x44(%rbp),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x44(%rbp),%eax
sub    -0x40(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x30(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x30(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x34(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x34(%rbp),%eax
sub    -0x38(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x48(%rbp),%eax
mov    %eax,-0xfc(%rbp)
mov    -0xfc(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0xfc(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
imul   $0x7d8a,%rax,%rax
mov    %eax,-0x38(%rbp)
mov    -0x48(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x48(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
imul   $0xffffb4be,-0xc(%rbp),%eax
mov    %eax,-0xf8(%rbp)
mov    -0x38(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0xf8(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x4c(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
imul   $0xffff9b6e,-0xc(%rbp),%eax
mov    %eax,-0xf4(%rbp)
mov    -0xf4(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x50(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0xf0(%rbp)
mov    -0xf0(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0xf0(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
imul   $0x6a6e,%rax,%rax
mov    %eax,-0x38(%rbp)
mov    -0x44(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
movslq -0x14(%rbp),%rax
add    $0x4000,%rax
mov    %eax,-0x10(%rbp)
mov    -0x44(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xf,%eax
mov    %eax,-0xc(%rbp)
imul   $0xffff4e75,-0xc(%rbp),%eax
mov    %eax,-0xec(%rbp)
mov    -0x38(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0xec(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x50(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
movslq -0x14(%rbp),%rax
add    $0x4000,%rax
mov    %eax,-0x10(%rbp)
mov    -0x50(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xf,%eax
mov    %eax,-0xc(%rbp)
imul   $0xffff72bd,-0xc(%rbp),%eax
mov    %eax,-0xe8(%rbp)
mov    -0xe8(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
mov    -0xe8(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x40(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x40(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x50(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
mov    -0x50(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
add    -0x48(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x50(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
mov    -0x50(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
sub    -0x48(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x4c(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x44(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x4c(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x44(%rbp),%eax
sub    -0x1c(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x34(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0xe4(%rbp)
mov    -0xe4(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0xe4(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
imul   $0x4546,%rax,%rax
mov    %eax,-0x4c(%rbp)
mov    -0x34(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x34(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
imul   $0xffff89be,-0xc(%rbp),%eax
mov    %eax,-0xe0(%rbp)
mov    -0x4c(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0xe0(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x30(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
imul   $0x187e,-0xc(%rbp),%eax
mov    %eax,-0xdc(%rbp)
mov    -0xdc(%rbp),%eax
shl    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0x4c(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0xc(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x38(%rbp),%ecx
mov    -0x108(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x40(%rbp),%ecx
mov    -0x108(%rbp),%rax
mov    %ecx,0x10(%rax)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x30(%rbp),%ecx
mov    -0x108(%rbp),%rax
mov    %ecx,0x8(%rax)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x34(%rbp),%ecx
mov    -0x108(%rbp),%rax
mov    %ecx,0x18(%rax)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x48(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    %eax,-0xd8(%rbp)
mov    -0xd8(%rbp),%ecx
mov    -0x108(%rbp),%rax
mov    %ecx,0x1c(%rax)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x48(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0xd4(%rbp)
mov    -0xd4(%rbp),%ecx
mov    -0x108(%rbp),%rax
mov    %ecx,0x4(%rax)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x44(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x44(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
imul   $0x5a82,%rax,%rax
mov    %eax,-0xd0(%rbp)
mov    -0xd0(%rbp),%ecx
mov    -0x108(%rbp),%rax
mov    %ecx,0xc(%rax)
mov    -0x58(%rbp),%eax
mov    %eax,-0x110(%rbp)
mov    -0x110(%rbp),%eax
shl    $0x6,%eax
mov    %eax,-0x10c(%rbp)
mov    -0x10c(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x2c(%rbp),%rcx
shr    $0x2,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x50(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x50(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
imul   $0x5a82,%rax,%rax
mov    %eax,-0xcc(%rbp)
mov    -0xcc(%rbp),%ecx
mov    -0x108(%rbp),%rax
mov    %ecx,0x14(%rax)
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
cmpl   $0x7,-0x58(%rbp)
jg     1ab5 <dct+0x9b5>
jmp    111b <dct+0x1b>
jmp    1aba <dct+0x9ba>
movl   $0x0,-0x54(%rbp)
jmp    214a <dct+0x104a>
mov    -0x8(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x50(%rbp)
mov    -0x8(%rbp),%rax
add    $0x20,%rax
mov    %rax,-0xc8(%rbp)
mov    -0xc8(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x8(%rbp),%rax
add    $0x40,%rax
mov    %rax,-0xc0(%rbp)
mov    -0xc0(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x48(%rbp)
mov    -0x8(%rbp),%rax
add    $0x60,%rax
mov    %rax,-0xb8(%rbp)
mov    -0xb8(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x44(%rbp)
mov    -0x8(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0xb0(%rbp)
mov    -0xb0(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x40(%rbp)
mov    -0x8(%rbp),%rax
add    $0xa0,%rax
mov    %rax,-0xa8(%rbp)
mov    -0xa8(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x8(%rbp),%rax
add    $0xc0,%rax
mov    %rax,-0xa0(%rbp)
mov    -0xa0(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x38(%rbp)
mov    -0x8(%rbp),%rax
add    $0xe0,%rax
mov    %rax,-0x98(%rbp)
mov    -0x98(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x34(%rbp)
mov    -0x34(%rbp),%eax
add    -0x50(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x50(%rbp),%eax
sub    -0x34(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x4c(%rbp),%eax
sub    -0x38(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x48(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x48(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x44(%rbp),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x44(%rbp),%eax
sub    -0x40(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x30(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x30(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x34(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x34(%rbp),%eax
sub    -0x38(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x48(%rbp),%eax
mov    %eax,-0x8c(%rbp)
mov    -0x8c(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x8c(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
imul   $0x7d8a,%rax,%rax
mov    %eax,-0x38(%rbp)
mov    -0x48(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x48(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
imul   $0xffffb4be,-0xc(%rbp),%eax
mov    %eax,-0x88(%rbp)
mov    -0x38(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x88(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x4c(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
imul   $0xffff9b6e,-0xc(%rbp),%eax
mov    %eax,-0x84(%rbp)
mov    -0x84(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x50(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x80(%rbp)
mov    -0x80(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x80(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
imul   $0x6a6e,%rax,%rax
mov    %eax,-0x38(%rbp)
mov    -0x44(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
movslq -0x14(%rbp),%rax
add    $0x4000,%rax
mov    %eax,-0x10(%rbp)
mov    -0x44(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xf,%eax
mov    %eax,-0xc(%rbp)
imul   $0xffff4e75,-0xc(%rbp),%eax
mov    %eax,-0x7c(%rbp)
mov    -0x38(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x7c(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x50(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
movslq -0x14(%rbp),%rax
add    $0x4000,%rax
mov    %eax,-0x10(%rbp)
mov    -0x50(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xf,%eax
mov    %eax,-0xc(%rbp)
imul   $0xffff72bd,-0xc(%rbp),%eax
mov    %eax,-0x78(%rbp)
mov    -0x78(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
mov    -0x78(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x40(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x40(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x50(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
mov    -0x50(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
add    -0x48(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x50(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
mov    -0x50(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
sub    -0x48(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x4c(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x44(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x4c(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x44(%rbp),%eax
sub    -0x1c(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x34(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x74(%rbp)
mov    -0x74(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x74(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
imul   $0x4546,%rax,%rax
mov    %eax,-0x4c(%rbp)
mov    -0x34(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x34(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
imul   $0xffff89be,-0xc(%rbp),%eax
mov    %eax,-0x70(%rbp)
mov    -0x4c(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x70(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x30(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
imul   $0x187e,-0xc(%rbp),%eax
mov    %eax,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
shl    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0x4c(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
mov    -0x4c(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0xc(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x38(%rbp),%edx
mov    -0x8(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0xb0(%rbp)
mov    -0x40(%rbp),%edx
mov    -0xb0(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0x40,%rax
mov    %rax,-0xc0(%rbp)
mov    -0x30(%rbp),%edx
mov    -0xc0(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0xc0,%rax
mov    %rax,-0xa0(%rbp)
mov    -0x34(%rbp),%edx
mov    -0xa0(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0xe0,%rax
mov    %rax,-0x98(%rbp)
mov    -0x48(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    %eax,-0x68(%rbp)
mov    -0x68(%rbp),%edx
mov    -0x98(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0x20,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x48(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0x64(%rbp)
mov    -0x64(%rbp),%edx
mov    -0xc8(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0x60,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x44(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x44(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
imul   $0x5a82,%rax,%rax
mov    %eax,-0x60(%rbp)
mov    -0x60(%rbp),%edx
mov    -0xb8(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
add    $0xa0,%rax
mov    %rax,-0xa8(%rbp)
mov    -0x50(%rbp),%eax
sar    $0x1f,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
add    $0x2000,%eax
mov    %eax,-0x10(%rbp)
mov    -0x50(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
sar    $0xe,%eax
mov    %eax,-0xc(%rbp)
movslq -0xc(%rbp),%rax
imul   $0x5a82,%rax,%rax
mov    %eax,-0x5c(%rbp)
mov    -0x5c(%rbp),%edx
mov    -0xa8(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
cmpl   $0x7,-0x54(%rbp)
jg     2159 <dct+0x1059>
jmp    1ac6 <dct+0x9c6>
jmp    215e <dct+0x105e>
xor    %eax,%eax
add    $0x90,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<dct>:
xor    %eax,%eax
movdqa 0xef5(%rip),%xmm15
pcmpeqd %xmm9,%xmm9
movdqu 0x70(%rdi,%rax,1),%xmm11
movdqu 0x50(%rdi,%rax,1),%xmm14
movdqu (%rdi,%rax,1),%xmm2
movdqu 0x10(%rdi,%rax,1),%xmm1
movdqu 0x20(%rdi,%rax,1),%xmm0
movdqu 0x30(%rdi,%rax,1),%xmm13
movdqu 0x60(%rdi,%rax,1),%xmm7
movdqu 0x40(%rdi,%rax,1),%xmm6
movdqa %xmm6,%xmm5
punpckldq %xmm7,%xmm5
movdqa %xmm2,%xmm4
punpckldq %xmm0,%xmm4
movdqa %xmm4,%xmm8
punpcklqdq %xmm5,%xmm8
punpckhqdq %xmm5,%xmm4
punpckhdq %xmm7,%xmm6
punpckhdq %xmm0,%xmm2
movdqa %xmm2,%xmm0
punpcklqdq %xmm6,%xmm0
punpckhqdq %xmm6,%xmm2
movdqa %xmm14,%xmm5
punpckldq %xmm11,%xmm5
movdqa %xmm1,%xmm7
punpckldq %xmm13,%xmm7
movdqa %xmm7,%xmm3
punpcklqdq %xmm5,%xmm3
punpckhqdq %xmm5,%xmm7
punpckhdq %xmm11,%xmm14
punpckhdq %xmm13,%xmm1
movdqa %xmm1,%xmm5
punpcklqdq %xmm14,%xmm5
punpckhqdq %xmm14,%xmm1
movdqa %xmm1,%xmm6
paddd  %xmm8,%xmm6
psubd  %xmm1,%xmm8
movdqa %xmm5,%xmm1
paddd  %xmm4,%xmm1
psubd  %xmm5,%xmm4
movdqa %xmm7,%xmm11
paddd  %xmm0,%xmm11
psubd  %xmm7,%xmm0
movdqa %xmm3,%xmm5
paddd  %xmm2,%xmm5
psubd  %xmm3,%xmm2
movdqa %xmm6,%xmm12
paddd  %xmm5,%xmm12
psubd  %xmm5,%xmm6
movdqa %xmm1,%xmm10
paddd  %xmm11,%xmm10
psubd  %xmm11,%xmm1
movdqa %xmm4,%xmm5
paddd  %xmm0,%xmm5
movdqa %xmm5,%xmm11
psrad  $0x1f,%xmm11
paddd  %xmm15,%xmm5
paddd  %xmm11,%xmm5
psrad  $0xe,%xmm5
pshufd $0xf5,%xmm5,%xmm11
movdqa 0xde4(%rip),%xmm3
pmuludq %xmm3,%xmm5
pshufd $0xe8,%xmm5,%xmm5
pmuludq %xmm3,%xmm11
pshufd $0xe8,%xmm11,%xmm3
punpckldq %xmm3,%xmm5
movdqa %xmm0,%xmm3
psrad  $0x1f,%xmm3
paddd  %xmm15,%xmm0
paddd  %xmm3,%xmm0
psrad  $0xe,%xmm0
pshufd $0xf5,%xmm0,%xmm3
movdqa 0xdb8(%rip),%xmm7
pmuludq %xmm7,%xmm0
pshufd $0xe8,%xmm0,%xmm0
pmuludq %xmm7,%xmm3
pshufd $0xe8,%xmm3,%xmm3
punpckldq %xmm3,%xmm0
movdqa %xmm5,%xmm13
psrad  $0x1f,%xmm13
paddd  %xmm5,%xmm13
psubd  %xmm9,%xmm13
psrad  $0x1,%xmm13
paddd  %xmm0,%xmm13
movdqa %xmm4,%xmm0
psrad  $0x1f,%xmm0
paddd  %xmm15,%xmm4
paddd  %xmm0,%xmm4
psrad  $0xe,%xmm4
pshufd $0xf5,%xmm4,%xmm0
movdqa 0xd6e(%rip),%xmm3
pmuludq %xmm3,%xmm4
pshufd $0xe8,%xmm4,%xmm14
pmuludq %xmm3,%xmm0
pshufd $0xe8,%xmm0,%xmm0
punpckldq %xmm0,%xmm14
paddd  %xmm5,%xmm14
movdqa %xmm8,%xmm0
paddd  %xmm2,%xmm0
movdqa %xmm0,%xmm3
psrad  $0x1f,%xmm3
paddd  %xmm15,%xmm0
paddd  %xmm3,%xmm0
psrad  $0xe,%xmm0
pshufd $0xf5,%xmm0,%xmm3
movdqa 0xd34(%rip),%xmm4
pmuludq %xmm4,%xmm0
pshufd $0xe8,%xmm0,%xmm0
pmuludq %xmm4,%xmm3
pshufd $0xe8,%xmm3,%xmm3
punpckldq %xmm3,%xmm0
movdqa %xmm2,%xmm3
psrad  $0x1f,%xmm3
movdqa 0xd1d(%rip),%xmm4
paddd  %xmm4,%xmm2
paddd  %xmm3,%xmm2
psrad  $0xf,%xmm2
pshufd $0xf5,%xmm2,%xmm3
movdqa 0xd13(%rip),%xmm5
pmuludq %xmm5,%xmm2
pshufd $0xe8,%xmm2,%xmm2
pmuludq %xmm5,%xmm3
pshufd $0xe8,%xmm3,%xmm3
punpckldq %xmm3,%xmm2
movdqa %xmm0,%xmm11
psrad  $0x1f,%xmm11
paddd  %xmm0,%xmm11
psubd  %xmm9,%xmm11
psrad  $0x1,%xmm11
paddd  %xmm2,%xmm11
movdqa %xmm8,%xmm2
psrad  $0x1f,%xmm2
paddd  %xmm4,%xmm8
paddd  %xmm2,%xmm8
psrad  $0xf,%xmm8
pshufd $0xf5,%xmm8,%xmm2
movdqa 0xcc5(%rip),%xmm4
pmuludq %xmm4,%xmm8
pshufd $0xe8,%xmm8,%xmm3
pmuludq %xmm4,%xmm2
pshufd $0xe8,%xmm2,%xmm2
punpckldq %xmm2,%xmm3
movdqa %xmm3,%xmm5
psrad  $0x1f,%xmm5
paddd  %xmm3,%xmm5
psubd  %xmm9,%xmm5
psrad  $0x1,%xmm5
paddd  %xmm0,%xmm5
movdqa %xmm12,%xmm2
paddd  %xmm10,%xmm2
psubd  %xmm10,%xmm12
movdqa %xmm5,%xmm4
psrad  $0x1f,%xmm4
paddd  %xmm5,%xmm4
psubd  %xmm9,%xmm4
psrad  $0x1,%xmm4
movdqa %xmm4,%xmm0
paddd  %xmm13,%xmm0
psubd  %xmm13,%xmm4
movdqa %xmm14,%xmm3
psrad  $0x1f,%xmm3
paddd  %xmm14,%xmm3
movdqa 0xc86(%rip),%xmm14
movdqa 0xc6d(%rip),%xmm13
movdqa 0xc54(%rip),%xmm10
movdqa 0xc3c(%rip),%xmm7
psubd  %xmm9,%xmm3
psrad  $0x1,%xmm3
movdqa %xmm11,%xmm8
paddd  %xmm3,%xmm8
psubd  %xmm3,%xmm11
movdqa %xmm6,%xmm3
paddd  %xmm1,%xmm3
movdqa %xmm3,%xmm5
psrad  $0x1f,%xmm5
paddd  %xmm15,%xmm3
paddd  %xmm5,%xmm3
psrad  $0xe,%xmm3
pshufd $0xf5,%xmm3,%xmm5
pmuludq %xmm7,%xmm3
pshufd $0xe8,%xmm3,%xmm3
pmuludq %xmm7,%xmm5
pshufd $0xe8,%xmm5,%xmm5
punpckldq %xmm5,%xmm3
movdqa %xmm1,%xmm5
psrad  $0x1f,%xmm5
paddd  %xmm15,%xmm1
paddd  %xmm5,%xmm1
psrad  $0xe,%xmm1
pshufd $0xf5,%xmm1,%xmm5
pmuludq %xmm10,%xmm1
pshufd $0xe8,%xmm1,%xmm1
pmuludq %xmm10,%xmm5
pshufd $0xe8,%xmm5,%xmm5
punpckldq %xmm5,%xmm1
movdqa %xmm3,%xmm5
psrad  $0x1f,%xmm5
paddd  %xmm3,%xmm5
psubd  %xmm9,%xmm5
psrad  $0x1,%xmm5
paddd  %xmm5,%xmm1
movdqa %xmm6,%xmm3
psrad  $0x1f,%xmm3
paddd  %xmm15,%xmm6
paddd  %xmm3,%xmm6
psrad  $0xe,%xmm6
pshufd $0xf5,%xmm6,%xmm3
pmuludq %xmm13,%xmm6
pshufd $0xe8,%xmm6,%xmm6
pmuludq %xmm13,%xmm3
pshufd $0xe8,%xmm3,%xmm3
punpckldq %xmm3,%xmm6
paddd  %xmm5,%xmm6
movdqa %xmm8,%xmm10
psubd  %xmm0,%xmm10
paddd  %xmm0,%xmm8
movdqa %xmm11,%xmm0
psrad  $0x1f,%xmm0
paddd  %xmm15,%xmm11
paddd  %xmm0,%xmm11
psrad  $0xe,%xmm11
pshufd $0xf5,%xmm11,%xmm3
pmuludq %xmm14,%xmm11
pshufd $0xe8,%xmm11,%xmm13
pmuludq %xmm14,%xmm3
pshufd $0xe8,%xmm3,%xmm3
punpckldq %xmm3,%xmm13
movdqa %xmm4,%xmm3
psrad  $0x1f,%xmm3
paddd  %xmm15,%xmm4
paddd  %xmm3,%xmm4
psrad  $0xe,%xmm4
pshufd $0xf5,%xmm4,%xmm3
pmuludq %xmm14,%xmm4
pshufd $0xe8,%xmm4,%xmm5
pmuludq %xmm14,%xmm3
pshufd $0xe8,%xmm3,%xmm3
punpckldq %xmm3,%xmm5
movdqa %xmm12,%xmm3
punpckldq %xmm5,%xmm3
movdqa %xmm1,%xmm4
punpckldq %xmm10,%xmm4
movdqa %xmm3,%xmm11
punpcklqdq %xmm4,%xmm11
movhlps %xmm3,%xmm4
punpckhdq %xmm5,%xmm12
punpckhdq %xmm10,%xmm1
movdqa %xmm12,%xmm3
punpcklqdq %xmm1,%xmm3
movhlps %xmm12,%xmm1
movdqa %xmm6,%xmm5
punpckldq %xmm13,%xmm5
movdqa %xmm2,%xmm7
punpckldq %xmm8,%xmm7
movdqa %xmm7,%xmm0
punpcklqdq %xmm5,%xmm0
punpckhqdq %xmm5,%xmm7
punpckhdq %xmm13,%xmm6
punpckhdq %xmm8,%xmm2
movdqa %xmm2,%xmm5
punpcklqdq %xmm6,%xmm5
punpckhqdq %xmm6,%xmm2
movdqu %xmm2,0x60(%rdi,%rax,1)
movdqu %xmm5,0x40(%rdi,%rax,1)
movdqu %xmm7,0x20(%rdi,%rax,1)
movdqu %xmm0,(%rdi,%rax,1)
movups %xmm1,0x70(%rdi,%rax,1)
movdqu %xmm3,0x50(%rdi,%rax,1)
movups %xmm4,0x30(%rdi,%rax,1)
movdqu %xmm11,0x10(%rdi,%rax,1)
sub    $0xffffffffffffff80,%rax
cmp    $0x100,%rax
jne    1110 <dct+0x10>
mov    $0xfffffffffffffff8,%rax
pcmpeqd %xmm8,%xmm8
movdqa 0x9d8(%rip),%xmm12
nopl   0x0(%rax,%rax,1)
movdqu 0x20(%rdi,%rax,4),%xmm2
movdqu 0x40(%rdi,%rax,4),%xmm0
movdqu 0x60(%rdi,%rax,4),%xmm5
movdqu 0x80(%rdi,%rax,4),%xmm3
movdqu 0xa0(%rdi,%rax,4),%xmm9
movdqu 0xc0(%rdi,%rax,4),%xmm6
movdqu 0xe0(%rdi,%rax,4),%xmm1
movdqu 0x100(%rdi,%rax,4),%xmm4
movdqa %xmm4,%xmm10
paddd  %xmm2,%xmm10
psubd  %xmm4,%xmm2
movdqa %xmm1,%xmm4
paddd  %xmm0,%xmm4
psubd  %xmm1,%xmm0
movdqa %xmm6,%xmm7
paddd  %xmm5,%xmm7
psubd  %xmm6,%xmm5
movdqa %xmm9,%xmm1
paddd  %xmm3,%xmm1
psubd  %xmm9,%xmm3
movdqa %xmm10,%xmm11
paddd  %xmm1,%xmm11
psubd  %xmm1,%xmm10
movdqa %xmm4,%xmm13
paddd  %xmm7,%xmm13
psubd  %xmm7,%xmm4
movdqa %xmm0,%xmm6
paddd  %xmm5,%xmm6
movdqa %xmm6,%xmm7
psrad  $0x1f,%xmm7
paddd  %xmm15,%xmm6
paddd  %xmm7,%xmm6
psrad  $0xe,%xmm6
pshufd $0xf5,%xmm6,%xmm1
movdqa 0x8f2(%rip),%xmm9
pmuludq %xmm9,%xmm6
pshufd $0xe8,%xmm6,%xmm7
pmuludq %xmm9,%xmm1
pshufd $0xe8,%xmm1,%xmm1
punpckldq %xmm1,%xmm7
movdqa %xmm5,%xmm1
psrad  $0x1f,%xmm1
paddd  %xmm15,%xmm5
paddd  %xmm1,%xmm5
psrad  $0xe,%xmm5
pshufd $0xf5,%xmm5,%xmm1
movdqa 0x8c5(%rip),%xmm9
pmuludq %xmm9,%xmm5
pshufd $0xe8,%xmm5,%xmm6
pmuludq %xmm9,%xmm1
pshufd $0xe8,%xmm1,%xmm1
punpckldq %xmm1,%xmm6
movdqa %xmm7,%xmm5
psrad  $0x1f,%xmm5
paddd  %xmm7,%xmm5
psubd  %xmm8,%xmm5
psrad  $0x1,%xmm5
paddd  %xmm6,%xmm5
movdqa %xmm0,%xmm1
psrad  $0x1f,%xmm1
paddd  %xmm15,%xmm0
paddd  %xmm1,%xmm0
psrad  $0xe,%xmm0
pshufd $0xf5,%xmm0,%xmm1
pmuludq %xmm12,%xmm0
pshufd $0xe8,%xmm0,%xmm0
pmuludq %xmm12,%xmm1
pshufd $0xe8,%xmm1,%xmm1
punpckldq %xmm1,%xmm0
paddd  %xmm7,%xmm0
movdqa %xmm2,%xmm1
paddd  %xmm3,%xmm1
movdqa %xmm1,%xmm6
psrad  $0x1f,%xmm6
paddd  %xmm15,%xmm1
paddd  %xmm6,%xmm1
psrad  $0xe,%xmm1
pshufd $0xf5,%xmm1,%xmm6
movdqa 0x84d(%rip),%xmm9
pmuludq %xmm9,%xmm1
pshufd $0xe8,%xmm1,%xmm7
pmuludq %xmm9,%xmm6
pshufd $0xe8,%xmm6,%xmm1
punpckldq %xmm1,%xmm7
movdqa %xmm3,%xmm1
psrad  $0x1f,%xmm1
movdqa 0x833(%rip),%xmm9
paddd  %xmm9,%xmm3
paddd  %xmm1,%xmm3
psrad  $0xf,%xmm3
pshufd $0xf5,%xmm3,%xmm1
movdqa 0x827(%rip),%xmm14
pmuludq %xmm14,%xmm3
pshufd $0xe8,%xmm3,%xmm6
pmuludq %xmm14,%xmm1
movdqa 0x82f(%rip),%xmm14
pshufd $0xe8,%xmm1,%xmm1
punpckldq %xmm1,%xmm6
movdqa %xmm7,%xmm3
psrad  $0x1f,%xmm3
paddd  %xmm7,%xmm3
psubd  %xmm8,%xmm3
psrad  $0x1,%xmm3
paddd  %xmm6,%xmm3
movdqa %xmm2,%xmm1
psrad  $0x1f,%xmm1
paddd  %xmm9,%xmm2
paddd  %xmm1,%xmm2
psrad  $0xf,%xmm2
pshufd $0xf5,%xmm2,%xmm1
movdqa 0x7d7(%rip),%xmm6
pmuludq %xmm6,%xmm2
pshufd $0xe8,%xmm2,%xmm2
pmuludq %xmm6,%xmm1
pshufd $0xe8,%xmm1,%xmm1
punpckldq %xmm1,%xmm2
movdqa %xmm2,%xmm1
psrad  $0x1f,%xmm1
paddd  %xmm2,%xmm1
psubd  %xmm8,%xmm1
psrad  $0x1,%xmm1
paddd  %xmm7,%xmm1
movdqa %xmm11,%xmm9
paddd  %xmm13,%xmm9
psubd  %xmm13,%xmm11
movdqa %xmm1,%xmm2
psrad  $0x1f,%xmm2
paddd  %xmm1,%xmm2
psubd  %xmm8,%xmm2
psrad  $0x1,%xmm2
movdqa %xmm2,%xmm13
paddd  %xmm5,%xmm13
psubd  %xmm5,%xmm2
movdqa %xmm0,%xmm1
psrad  $0x1f,%xmm1
paddd  %xmm0,%xmm1
psubd  %xmm8,%xmm1
psrad  $0x1,%xmm1
movdqa %xmm3,%xmm0
paddd  %xmm1,%xmm0
psubd  %xmm1,%xmm3
movdqa %xmm10,%xmm1
paddd  %xmm4,%xmm1
movdqa %xmm1,%xmm5
psrad  $0x1f,%xmm5
paddd  %xmm15,%xmm1
paddd  %xmm5,%xmm1
psrad  $0xe,%xmm1
pshufd $0xf5,%xmm1,%xmm5
pmuludq %xmm14,%xmm1
pshufd $0xe8,%xmm1,%xmm6
pmuludq %xmm14,%xmm5
movdqa 0x742(%rip),%xmm14
movdqa 0x72a(%rip),%xmm7
pshufd $0xe8,%xmm5,%xmm1
punpckldq %xmm1,%xmm6
movdqa %xmm4,%xmm1
psrad  $0x1f,%xmm1
paddd  %xmm15,%xmm4
paddd  %xmm1,%xmm4
psrad  $0xe,%xmm4
pshufd $0xf5,%xmm4,%xmm5
pmuludq %xmm7,%xmm4
pshufd $0xe8,%xmm4,%xmm1
pmuludq %xmm7,%xmm5
pshufd $0xe8,%xmm5,%xmm4
punpckldq %xmm4,%xmm1
movdqa %xmm6,%xmm4
psrad  $0x1f,%xmm4
paddd  %xmm6,%xmm4
movdqa %xmm10,%xmm5
psrad  $0x1f,%xmm5
paddd  %xmm15,%xmm10
paddd  %xmm5,%xmm10
psrad  $0xe,%xmm10
pshufd $0xf5,%xmm10,%xmm5
pmuludq %xmm14,%xmm10
pshufd $0xe8,%xmm10,%xmm6
pmuludq %xmm14,%xmm5
movdqa 0x6ca(%rip),%xmm7
pshufd $0xe8,%xmm5,%xmm5
punpckldq %xmm5,%xmm6
psubd  %xmm8,%xmm4
psrad  $0x1,%xmm4
paddd  %xmm4,%xmm1
paddd  %xmm4,%xmm6
movdqu %xmm9,0x20(%rdi,%rax,4)
movdqu %xmm11,0xa0(%rdi,%rax,4)
movdqu %xmm6,0x60(%rdi,%rax,4)
movdqu %xmm1,0xe0(%rdi,%rax,4)
movdqa %xmm0,%xmm1
psubd  %xmm13,%xmm1
movdqu %xmm1,0x100(%rdi,%rax,4)
paddd  %xmm13,%xmm0
movdqu %xmm0,0x40(%rdi,%rax,4)
movdqa %xmm3,%xmm0
psrad  $0x1f,%xmm0
paddd  %xmm15,%xmm3
paddd  %xmm0,%xmm3
psrad  $0xe,%xmm3
pshufd $0xf5,%xmm3,%xmm0
pmuludq %xmm7,%xmm3
pshufd $0xe8,%xmm3,%xmm1
pmuludq %xmm7,%xmm0
pshufd $0xe8,%xmm0,%xmm0
punpckldq %xmm0,%xmm1
movdqu %xmm1,0x80(%rdi,%rax,4)
movdqa %xmm2,%xmm0
psrad  $0x1f,%xmm0
paddd  %xmm15,%xmm2
paddd  %xmm0,%xmm2
psrad  $0xe,%xmm2
pshufd $0xf5,%xmm2,%xmm0
pmuludq %xmm7,%xmm2
pshufd $0xe8,%xmm2,%xmm1
pmuludq %xmm7,%xmm0
pshufd $0xe8,%xmm0,%xmm0
punpckldq %xmm0,%xmm1
movdqu %xmm1,0xc0(%rdi,%rax,4)
add    $0x4,%rax
jne    1660 <dct+0x560>
xor    %eax,%eax
ret

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

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