#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 devid;

/* Variables and functions */
int /*<<< orphan*/ snprintf(char *, int, char *, char const *, char *, int);
void i830_debug_dcc(char *result, int len, int reg, uint32_t val,
                    uint32_t devid) {
  const char *addressing = NULL;
  if (!((devid) == 0x3582 || (devid) == 0x2592 || (devid) == 0x27A2 ||
        (devid) == 0x27AE || (devid) == 0x2A02 || (devid) == 0x2A12 ||
        (devid) == 0x2A42 || (((devid) == 0xA001) || ((devid) == 0xA011)) ||
        (devid) == 0x0156 || (devid) == 0x0166))
    return;
  if ((((devid) == 0x29A2 || (devid) == 0x2992 || (devid) == 0x2982 ||
        (devid) == 0x2A02 || (devid) == 0x2A12 || (devid) == 0x2972 ||
        (((devid) == 0x2E02 || (devid) == 0x2E12 || (devid) == 0x2E22 ||
          (devid) == 0x2E32) ||
         ((devid) == 0x2A42))) ||
       (((devid) == 0x0042) || ((devid) == 0x0046)) ||
       ((devid) == 0x0102 || (devid) == 0x0112 || (devid) == 0x0122 ||
        (devid) == 0x0106 || (devid) == 0x0116 || (devid) == 0x0126 ||
        (devid) == 0x010A) ||
       (((devid) == 0x0152 || (devid) == 0x0162 || (devid) == 0x0156 ||
         (devid) == 0x0166 || (devid) == 0x015a || (devid) == 0x016a) ||
        (((devid) == 0x0402 || (devid) == 0x0406 || (devid) == 0x040A ||
          (devid) == 0x040B || (devid) == 0x040E || (devid) == 0x0C02 ||
          (devid) == 0x0C06 || (devid) == 0x0C0A || (devid) == 0x0C0B ||
          (devid) == 0x0C0E || (devid) == 0x0A02 || (devid) == 0x0A06 ||
          (devid) == 0x0A0A || (devid) == 0x0A0B || (devid) == 0x0A0E ||
          (devid) == 0x0D02 || (devid) == 0x0D06 || (devid) == 0x0D0A ||
          (devid) == 0x0D0B || (devid) == 0x0D0E) ||
         ((devid) == 0x0412 || (devid) == 0x0416 || (devid) == 0x041A ||
          (devid) == 0x041B || (devid) == 0x041E || (devid) == 0x0C12 ||
          (devid) == 0x0C16 || (devid) == 0x0C1A || (devid) == 0x0C1B ||
          (devid) == 0x0C1E || (devid) == 0x0A12 || (devid) == 0x0A16 ||
          (devid) == 0x0A1A || (devid) == 0x0A1B || (devid) == 0x0A1E ||
          (devid) == 0x0D12 || (devid) == 0x0D16 || (devid) == 0x0D1A ||
          (devid) == 0x0D1B || (devid) == 0x0D1E) ||
         ((devid) == 0x0422 || (devid) == 0x0426 || (devid) == 0x042A ||
          (devid) == 0x042B || (devid) == 0x042E || (devid) == 0x0C22 ||
          (devid) == 0x0C26 || (devid) == 0x0C2A || (devid) == 0x0C2B ||
          (devid) == 0x0C2E || (devid) == 0x0A22 || (devid) == 0x0A26 ||
          (devid) == 0x0A2A || (devid) == 0x0A2B || (devid) == 0x0A2E ||
          (devid) == 0x0D22 || (devid) == 0x0D26 || (devid) == 0x0D2A ||
          (devid) == 0x0D2B || (devid) == 0x0D2E)) ||
        ((devid) == 0x0f30 || (devid) == 0x0f31 || (devid) == 0x0f32 ||
         (devid) == 0x0f33)) ||
       (((((devid)&0xff00) != 0x1600)    ? 0
         : ((((devid)&0x00f0) >> 4) > 3) ? 0
         : (((devid)&0x000f) == 0x2)     ? 1
         : (((devid)&0x000f) == 0x6)     ? 1
         : (((devid)&0x000f) == 0xb)     ? 1
         : (((devid)&0x000f) == 0xa)     ? 1
         : (((devid)&0x000f) == 0xd)     ? 1
         : (((devid)&0x000f) == 0xe)     ? 1
                                         : 0) ||
        ((devid) == 0x22b0 || (devid) == 0x22b1 || (devid) == 0x22b2 ||
         (devid) == 0x22b3)) ||
       (((((devid) == 0x5913 || (devid) == 0x5915 || (devid) == 0x5917 ||
           (devid) == 0x5906 || (devid) == 0x590E || (devid) == 0x5902 ||
           (devid) == 0x590B || (devid) == 0x590A) ||
          ((devid) == 0x5916 || (devid) == 0x5921 || (devid) == 0x591E ||
           (devid) == 0x5912 || (devid) == 0x591B || (devid) == 0x591A ||
           (devid) == 0x591D) ||
          ((devid) == 0x5926 || (devid) == 0x592B || (devid) == 0x592A)) ||
         ((devid) == 0x1906 || (devid) == 0x190E || (devid) == 0x1902 ||
          (devid) == 0x190B || (devid) == 0x190A) ||
         ((devid) == 0x1916 || (devid) == 0x1921 || (devid) == 0x191E ||
          (devid) == 0x1912 || (devid) == 0x191B || (devid) == 0x191A ||
          (devid) == 0x191D) ||
         ((devid) == 0x1926 || (devid) == 0x192B || (devid) == 0x192A)) ||
        ((devid) == 0x0A84 || (devid) == 0x1A84 || (devid) == 0x5A84)))) {
    if (val & (1 << 1))
      addressing = "dual channel interleaved";
    else
      addressing = "single or dual channel asymmetric";
  } else {
    switch (val & 3) {
    case 0:
      addressing = "single channel";
      break;
    case 1:
      addressing = "dual channel asymmetric";
      break;
    case 2:
      addressing = "dual channel interleaved";
      break;
    case 3:
      addressing = "unknown channel layout";
      break;
    }
  }
  snprintf(result, len, "%s, XOR randomization: %sabled, XOR bit: %d",
           addressing, (val & (1 << 10)) ? "dis" : "en",
           (val & (1 << 9)) ? 17 : 11);
}


x86 assembly (clang, -O0):
<i830_debug_dcc>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
mov    %ecx,-0x14(%rbp)
mov    %r8d,-0x18(%rbp)
movq   $0x0,-0x20(%rbp)
cmpl   $0x3582,-0x18(%rbp)
je     11c5 <i830_debug_dcc+0xb5>
cmpl   $0x2592,-0x18(%rbp)
je     11c5 <i830_debug_dcc+0xb5>
cmpl   $0x27a2,-0x18(%rbp)
je     11c5 <i830_debug_dcc+0xb5>
cmpl   $0x27ae,-0x18(%rbp)
je     11c5 <i830_debug_dcc+0xb5>
cmpl   $0x2a02,-0x18(%rbp)
je     11c5 <i830_debug_dcc+0xb5>
cmpl   $0x2a12,-0x18(%rbp)
je     11c5 <i830_debug_dcc+0xb5>
cmpl   $0x2a42,-0x18(%rbp)
je     11c5 <i830_debug_dcc+0xb5>
cmpl   $0xa001,-0x18(%rbp)
je     11c5 <i830_debug_dcc+0xb5>
cmpl   $0xa011,-0x18(%rbp)
je     11c5 <i830_debug_dcc+0xb5>
cmpl   $0x156,-0x18(%rbp)
je     11c5 <i830_debug_dcc+0xb5>
cmpl   $0x166,-0x18(%rbp)
je     11c5 <i830_debug_dcc+0xb5>
jmp    1a47 <i830_debug_dcc+0x937>
cmpl   $0x29a2,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x2992,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x2982,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x2a02,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x2a12,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x2972,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x2e02,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x2e12,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x2e22,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x2e32,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x2a42,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x42,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x46,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x102,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x112,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x122,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x106,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x116,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x126,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x10a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x152,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x162,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x156,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x166,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x15a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x16a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x402,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x406,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x40a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x40b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x40e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc02,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc06,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc0a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc0b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc0e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa02,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa06,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa0a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa0b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa0e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd02,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd06,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd0a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd0b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd0e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x412,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x416,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x41a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x41b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x41e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc12,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc16,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc1a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc1b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc1e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa12,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa16,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa1a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa1b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa1e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd12,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd16,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd1a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd1b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd1e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x422,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x426,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x42a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x42b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x42e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc22,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc26,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc2a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc2b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xc2e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa22,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa26,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa2a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa2b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa2e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd22,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd26,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd2a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd2b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xd2e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xf30,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xf31,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xf32,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xf33,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
mov    -0x18(%rbp),%eax
and    $0xff00,%eax
cmp    $0x1600,%eax
je     1673 <i830_debug_dcc+0x563>
xor    %eax,%eax
test   $0x1,%al
jne    1961 <i830_debug_dcc+0x851>
jmp    1759 <i830_debug_dcc+0x649>
mov    -0x18(%rbp),%eax
and    $0xf0,%eax
sar    $0x4,%eax
cmp    $0x3,%eax
jle    1696 <i830_debug_dcc+0x586>
xor    %eax,%eax
test   $0x1,%al
jne    1961 <i830_debug_dcc+0x851>
jmp    1759 <i830_debug_dcc+0x649>
mov    -0x18(%rbp),%eax
and    $0xf,%eax
cmp    $0x2,%eax
jne    16b4 <i830_debug_dcc+0x5a4>
mov    $0x1,%al
test   $0x1,%al
jne    1961 <i830_debug_dcc+0x851>
jmp    1759 <i830_debug_dcc+0x649>
mov    -0x18(%rbp),%eax
and    $0xf,%eax
cmp    $0x6,%eax
jne    16d2 <i830_debug_dcc+0x5c2>
mov    $0x1,%al
test   $0x1,%al
jne    1961 <i830_debug_dcc+0x851>
jmp    1759 <i830_debug_dcc+0x649>
mov    -0x18(%rbp),%eax
and    $0xf,%eax
cmp    $0xb,%eax
jne    16f0 <i830_debug_dcc+0x5e0>
mov    $0x1,%al
test   $0x1,%al
jne    1961 <i830_debug_dcc+0x851>
jmp    1759 <i830_debug_dcc+0x649>
mov    -0x18(%rbp),%eax
and    $0xf,%eax
cmp    $0xa,%eax
jne    170e <i830_debug_dcc+0x5fe>
mov    $0x1,%al
test   $0x1,%al
jne    1961 <i830_debug_dcc+0x851>
jmp    1759 <i830_debug_dcc+0x649>
mov    -0x18(%rbp),%eax
and    $0xf,%eax
cmp    $0xd,%eax
jne    172c <i830_debug_dcc+0x61c>
mov    $0x1,%al
test   $0x1,%al
jne    1961 <i830_debug_dcc+0x851>
jmp    1759 <i830_debug_dcc+0x649>
mov    -0x18(%rbp),%eax
and    $0xf,%eax
cmp    $0xe,%eax
jne    174a <i830_debug_dcc+0x63a>
mov    $0x1,%al
test   $0x1,%al
jne    1961 <i830_debug_dcc+0x851>
jmp    1759 <i830_debug_dcc+0x649>
xor    %eax,%eax
test   $0x1,%al
jne    1961 <i830_debug_dcc+0x851>
jmp    1759 <i830_debug_dcc+0x649>
cmpl   $0x22b0,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x22b1,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x22b2,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x22b3,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x5913,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x5915,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x5917,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x5906,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x590e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x5902,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x590b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x590a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x5916,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x5921,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x591e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x5912,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x591b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x591a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x591d,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x5926,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x592b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x592a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x1906,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x190e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x1902,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x190b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x190a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x1916,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x1921,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x191e,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x1912,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x191b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x191a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x191d,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x1926,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x192b,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x192a,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0xa84,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x1a84,-0x18(%rbp)
je     1961 <i830_debug_dcc+0x851>
cmpl   $0x5a84,-0x18(%rbp)
jne    1990 <i830_debug_dcc+0x880>
mov    -0x14(%rbp),%eax
and    $0x2,%eax
cmp    $0x0,%eax
je     1980 <i830_debug_dcc+0x870>
lea    0x699(%rip),%rax
mov    %rax,-0x20(%rbp)
jmp    198b <i830_debug_dcc+0x87b>
lea    0x6a2(%rip),%rax
mov    %rax,-0x20(%rbp)
jmp    19f7 <i830_debug_dcc+0x8e7>
mov    -0x14(%rbp),%eax
and    $0x3,%eax
mov    %rax,-0x28(%rbp)
sub    $0x3,%eax
ja     19f2 <i830_debug_dcc+0x8e2>
mov    -0x28(%rbp),%rax
lea    0x652(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x68d(%rip),%rax
mov    %rax,-0x20(%rbp)
jmp    19f2 <i830_debug_dcc+0x8e2>
lea    0x665(%rip),%rax
mov    %rax,-0x20(%rbp)
jmp    19f2 <i830_debug_dcc+0x8e2>
lea    0x632(%rip),%rax
mov    %rax,-0x20(%rbp)
jmp    19f2 <i830_debug_dcc+0x8e2>
lea    0x66c(%rip),%rax
mov    %rax,-0x20(%rbp)
jmp    19f7 <i830_debug_dcc+0x8e7>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x20(%rbp),%rcx
mov    -0x14(%rbp),%edx
and    $0x400,%edx
lea    0x68f(%rip),%r8
lea    0x684(%rip),%rax
cmp    $0x0,%edx
cmovne %rax,%r8
mov    -0x14(%rbp),%edx
and    $0x200,%edx
mov    $0xb,%r9d
mov    $0x11,%eax
cmp    $0x0,%edx
cmovne %eax,%r9d
lea    0x62f(%rip),%rdx
call   1030 <snprintf@plt>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<i830_debug_dcc>:
cmp    $0x2a01,%r8d
jle    1142 <i830_debug_dcc+0x32>
cmp    $0x3581,%r8d
jg     116b <i830_debug_dcc+0x5b>
cmp    $0x2a02,%r8d
je     11a1 <i830_debug_dcc+0x91>
cmp    $0x2a12,%r8d
je     11a1 <i830_debug_dcc+0x91>
cmp    $0x2a42,%r8d
je     11a1 <i830_debug_dcc+0x91>
jmp    1276 <i830_debug_dcc+0x166>
cmp    $0x2591,%r8d
jle    118b <i830_debug_dcc+0x7b>
cmp    $0x2592,%r8d
je     11a1 <i830_debug_dcc+0x91>
cmp    $0x27a2,%r8d
je     11a1 <i830_debug_dcc+0x91>
cmp    $0x27ae,%r8d
je     11a1 <i830_debug_dcc+0x91>
jmp    1276 <i830_debug_dcc+0x166>
cmp    $0x3582,%r8d
je     11a1 <i830_debug_dcc+0x91>
cmp    $0xa011,%r8d
je     11a1 <i830_debug_dcc+0x91>
cmp    $0xa001,%r8d
je     11a1 <i830_debug_dcc+0x91>
jmp    1276 <i830_debug_dcc+0x166>
cmp    $0x156,%r8d
je     11a1 <i830_debug_dcc+0x91>
cmp    $0x166,%r8d
jne    1276 <i830_debug_dcc+0x166>
cmp    $0xc01,%r8d
jle    11f0 <i830_debug_dcc+0xe0>
cmp    $0xf2f,%r8d
jg     123b <i830_debug_dcc+0x12b>
lea    -0xc02(%r8),%edx
movabs $0x131113111311,%rax
cmp    $0x2c,%edx
jbe    126b <i830_debug_dcc+0x15b>
lea    -0xd02(%r8),%edx
cmp    $0x2c,%edx
ja     1308 <i830_debug_dcc+0x1f8>
bt     %rdx,%rax
jb     129c <i830_debug_dcc+0x18c>
jmp    1308 <i830_debug_dcc+0x1f8>
lea    -0x402(%r8),%eax
cmp    $0x2c,%eax
jbe    1259 <i830_debug_dcc+0x149>
lea    -0xa02(%r8),%eax
cmp    $0x2c,%eax
ja     121c <i830_debug_dcc+0x10c>
movabs $0x131113111311,%rdx
bt     %rax,%rdx
jb     129c <i830_debug_dcc+0x18c>
lea    -0x156(%r8),%eax
cmp    $0x14,%eax
ja     1308 <i830_debug_dcc+0x1f8>
mov    $0x111011,%edx
bt     %eax,%edx
jb     129c <i830_debug_dcc+0x18c>
jmp    1308 <i830_debug_dcc+0x1f8>
cmp    $0x2a01,%r8d
jg     1277 <i830_debug_dcc+0x167>
lea    -0xf30(%r8),%eax
cmp    $0x4,%eax
jb     129c <i830_debug_dcc+0x18c>
lea    -0x2972(%r8),%eax
jmp    1287 <i830_debug_dcc+0x177>
movabs $0x131113111311,%rdx
bt     %rax,%rdx
jb     129c <i830_debug_dcc+0x18c>
jmp    11fc <i830_debug_dcc+0xec>
bt     %rdx,%rax
jb     129c <i830_debug_dcc+0x18c>
jmp    11d1 <i830_debug_dcc+0xc1>
ret
cmp    $0x2e01,%r8d
jle    12ed <i830_debug_dcc+0x1dd>
lea    -0x2e02(%r8),%eax
cmp    $0x30,%eax
ja     1308 <i830_debug_dcc+0x1f8>
movabs $0x1000100010001,%rdx
bt     %rax,%rdx
jae    1308 <i830_debug_dcc+0x1f8>
test   $0x2,%cl
lea    0xd73(%rip),%rdx
lea    0xd53(%rip),%rax
cmove  %rdx,%rax
test   $0x400,%ecx
lea    0xdd3(%rip),%rdx
lea    0xdc8(%rip),%r8
cmove  %rdx,%r8
test   $0x200,%ecx
mov    $0xb,%ecx
mov    $0x11,%r9d
cmove  %ecx,%r9d
lea    0xd7c(%rip),%rdx
mov    %rax,%rcx
jmp    1030 <snprintf@plt>
cmp    $0x2a02,%r8d
je     129c <i830_debug_dcc+0x18c>
cmp    $0x2a12,%r8d
je     129c <i830_debug_dcc+0x18c>
cmp    $0x2a42,%r8d
je     129c <i830_debug_dcc+0x18c>
mov    %r8d,%eax
and    $0xffc0,%eax
cmp    $0x1600,%eax
jne    1385 <i830_debug_dcc+0x275>
mov    %r8d,%eax
and    $0xf,%eax
cmp    $0xd,%eax
ja     1330 <i830_debug_dcc+0x220>
mov    $0x2c44,%edx
bt     %eax,%edx
jb     129c <i830_debug_dcc+0x18c>
cmp    $0x22b0,%r8d
je     129c <i830_debug_dcc+0x18c>
cmp    $0xe,%eax
je     129c <i830_debug_dcc+0x18c>
cmp    $0x5901,%r8d
jg     141f <i830_debug_dcc+0x30f>
lea    -0x1902(%r8),%eax
cmp    $0x29,%eax
ja     1373 <i830_debug_dcc+0x263>
movabs $0x3109b111311,%rdx
bt     %rax,%rdx
jb     129c <i830_debug_dcc+0x18c>
lea    -0x22b1(%r8),%eax
cmp    $0x3,%eax
jb     129c <i830_debug_dcc+0x18c>
jmp    13bb <i830_debug_dcc+0x2ab>
cmp    $0x22af,%r8d
jg     13ca <i830_debug_dcc+0x2ba>
lea    -0x1902(%r8),%eax
cmp    $0x29,%eax
ja     13ae <i830_debug_dcc+0x29e>
movabs $0x3109b111311,%rdx
bt     %rax,%rdx
jb     129c <i830_debug_dcc+0x18c>
cmp    $0xa84,%r8d
je     129c <i830_debug_dcc+0x18c>
cmp    $0x1a84,%r8d
je     129c <i830_debug_dcc+0x18c>
jmp    1407 <i830_debug_dcc+0x2f7>
lea    -0x5902(%r8),%eax
cmp    $0x29,%eax
ja     13ea <i830_debug_dcc+0x2da>
movabs $0x3109b3b1311,%rdx
bt     %rax,%rdx
jb     129c <i830_debug_dcc+0x18c>
lea    -0x22b0(%r8),%eax
cmp    $0x4,%eax
jb     129c <i830_debug_dcc+0x18c>
cmp    $0x5a84,%r8d
je     129c <i830_debug_dcc+0x18c>
mov    %ecx,%eax
and    $0x3,%eax
lea    0xc81(%rip),%rdx
movslq (%rdx,%rax,4),%rax
add    %rdx,%rax
jmp    12b1 <i830_debug_dcc+0x1a1>
lea    -0x5902(%r8),%eax
cmp    $0x29,%eax
ja     13fa <i830_debug_dcc+0x2ea>
movabs $0x3109b3b1311,%rdx
bt     %rax,%rdx
jb     129c <i830_debug_dcc+0x18c>
jmp    13fa <i830_debug_dcc+0x2ea>

LLVM IR (-O0):
@.str = [25 x i8] c"dual channel interleaved\00"
@.str.1 = [34 x i8] c"single or dual channel asymmetric\00"
@.str.2 = [15 x i8] c"single channel\00"
@.str.3 = [24 x i8] c"dual channel asymmetric\00"
@.str.4 = [23 x i8] c"unknown channel layout\00"
@.str.5 = [44 x i8] c"%s, XOR randomization: %sabled, XOR bit: %d\00"
@.str.6 = [4 x i8] c"dis\00"
@.str.7 = [3 x i8] c"en\00"
define void @i830_debug_dcc(i8* %0, i32 %1, i32 %2, i32 %3, i32 %4) {
%6 = alloca i8*
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i8*
store i8* %0, i8** %6
store i32 %1, i32* %7
store i32 %2, i32* %8
store i32 %3, i32* %9
store i32 %4, i32* %10
store i8* null, i8** %11
%12 = load i32, i32* %10
%13 = icmp eq i32 %12, 13698
br i1 %13, label %45, label %14
14: ; preds = %5
%15 = load i32, i32* %10
%16 = icmp eq i32 %15, 9618
br i1 %16, label %45, label %17
17: ; preds = %14
%18 = load i32, i32* %10
%19 = icmp eq i32 %18, 10146
br i1 %19, label %45, label %20
20: ; preds = %17
%21 = load i32, i32* %10
%22 = icmp eq i32 %21, 10158
br i1 %22, label %45, label %23
23: ; preds = %20
%24 = load i32, i32* %10
%25 = icmp eq i32 %24, 10754
br i1 %25, label %45, label %26
26: ; preds = %23
%27 = load i32, i32* %10
%28 = icmp eq i32 %27, 10770
br i1 %28, label %45, label %29
29: ; preds = %26
%30 = load i32, i32* %10
%31 = icmp eq i32 %30, 10818
br i1 %31, label %45, label %32
32: ; preds = %29
%33 = load i32, i32* %10
%34 = icmp eq i32 %33, 40961
br i1 %34, label %45, label %35
35: ; preds = %32
%36 = load i32, i32* %10
%37 = icmp eq i32 %36, 40977
br i1 %37, label %45, label %38
38: ; preds = %35
%39 = load i32, i32* %10
%40 = icmp eq i32 %39, 342
br i1 %40, label %45, label %41
41: ; preds = %38
%42 = load i32, i32* %10
%43 = icmp eq i32 %42, 358
br i1 %43, label %45, label %44
44: ; preds = %41
br label %507
45: ; preds = %41, %38, %35, %32, %29, %26, %23, %20, %17, %14, %5
%46 = load i32, i32* %10
%47 = icmp eq i32 %46, 10658
br i1 %47, label %477, label %48
48: ; preds = %45
%49 = load i32, i32* %10
%50 = icmp eq i32 %49, 10642
br i1 %50, label %477, label %51
51: ; preds = %48
%52 = load i32, i32* %10
%53 = icmp eq i32 %52, 10626
br i1 %53, label %477, label %54
54: ; preds = %51
%55 = load i32, i32* %10
%56 = icmp eq i32 %55, 10754
br i1 %56, label %477, label %57
57: ; preds = %54
%58 = load i32, i32* %10
%59 = icmp eq i32 %58, 10770
br i1 %59, label %477, label %60
60: ; preds = %57
%61 = load i32, i32* %10
%62 = icmp eq i32 %61, 10610
br i1 %62, label %477, label %63
63: ; preds = %60
%64 = load i32, i32* %10
%65 = icmp eq i32 %64, 11778
br i1 %65, label %477, label %66
66: ; preds = %63
%67 = load i32, i32* %10
%68 = icmp eq i32 %67, 11794
br i1 %68, label %477, label %69
69: ; preds = %66
%70 = load i32, i32* %10
%71 = icmp eq i32 %70, 11810
br i1 %71, label %477, label %72
72: ; preds = %69
%73 = load i32, i32* %10
%74 = icmp eq i32 %73, 11826
br i1 %74, label %477, label %75
75: ; preds = %72
%76 = load i32, i32* %10
%77 = icmp eq i32 %76, 10818
br i1 %77, label %477, label %78
78: ; preds = %75
%79 = load i32, i32* %10
%80 = icmp eq i32 %79, 66
br i1 %80, label %477, label %81
81: ; preds = %78
%82 = load i32, i32* %10
%83 = icmp eq i32 %82, 70
br i1 %83, label %477, label %84
84: ; preds = %81
%85 = load i32, i32* %10
%86 = icmp eq i32 %85, 258
br i1 %86, label %477, label %87
87: ; preds = %84
%88 = load i32, i32* %10
%89 = icmp eq i32 %88, 274
br i1 %89, label %477, label %90
90: ; preds = %87
%91 = load i32, i32* %10
%92 = icmp eq i32 %91, 290
br i1 %92, label %477, label %93
93: ; preds = %90
%94 = load i32, i32* %10
%95 = icmp eq i32 %94, 262
br i1 %95, label %477, label %96
96: ; preds = %93
%97 = load i32, i32* %10
%98 = icmp eq i32 %97, 278
br i1 %98, label %477, label %99
99: ; preds = %96
%100 = load i32, i32* %10
%101 = icmp eq i32 %100, 294
br i1 %101, label %477, label %102
102: ; preds = %99
%103 = load i32, i32* %10
%104 = icmp eq i32 %103, 266
br i1 %104, label %477, label %105
105: ; preds = %102
%106 = load i32, i32* %10
%107 = icmp eq i32 %106, 338
br i1 %107, label %477, label %108
108: ; preds = %105
%109 = load i32, i32* %10
%110 = icmp eq i32 %109, 354
br i1 %110, label %477, label %111
111: ; preds = %108
%112 = load i32, i32* %10
%113 = icmp eq i32 %112, 342
br i1 %113, label %477, label %114
114: ; preds = %111
%115 = load i32, i32* %10
%116 = icmp eq i32 %115, 358
br i1 %116, label %477, label %117
117: ; preds = %114
%118 = load i32, i32* %10
%119 = icmp eq i32 %118, 346
br i1 %119, label %477, label %120
120: ; preds = %117
%121 = load i32, i32* %10
%122 = icmp eq i32 %121, 362
br i1 %122, label %477, label %123
123: ; preds = %120
%124 = load i32, i32* %10
%125 = icmp eq i32 %124, 1026
br i1 %125, label %477, label %126
126: ; preds = %123
%127 = load i32, i32* %10
%128 = icmp eq i32 %127, 1030
br i1 %128, label %477, label %129
129: ; preds = %126
%130 = load i32, i32* %10
%131 = icmp eq i32 %130, 1034
br i1 %131, label %477, label %132
132: ; preds = %129
%133 = load i32, i32* %10
%134 = icmp eq i32 %133, 1035
br i1 %134, label %477, label %135
135: ; preds = %132
%136 = load i32, i32* %10
%137 = icmp eq i32 %136, 1038
br i1 %137, label %477, label %138
138: ; preds = %135
%139 = load i32, i32* %10
%140 = icmp eq i32 %139, 3074
br i1 %140, label %477, label %141
141: ; preds = %138
%142 = load i32, i32* %10
%143 = icmp eq i32 %142, 3078
br i1 %143, label %477, label %144
144: ; preds = %141
%145 = load i32, i32* %10
%146 = icmp eq i32 %145, 3082
br i1 %146, label %477, label %147
147: ; preds = %144
%148 = load i32, i32* %10
%149 = icmp eq i32 %148, 3083
br i1 %149, label %477, label %150
150: ; preds = %147
%151 = load i32, i32* %10
%152 = icmp eq i32 %151, 3086
br i1 %152, label %477, label %153
153: ; preds = %150
%154 = load i32, i32* %10
%155 = icmp eq i32 %154, 2562
br i1 %155, label %477, label %156
156: ; preds = %153
%157 = load i32, i32* %10
%158 = icmp eq i32 %157, 2566
br i1 %158, label %477, label %159
159: ; preds = %156
%160 = load i32, i32* %10
%161 = icmp eq i32 %160, 2570
br i1 %161, label %477, label %162
162: ; preds = %159
%163 = load i32, i32* %10
%164 = icmp eq i32 %163, 2571
br i1 %164, label %477, label %165
165: ; preds = %162
%166 = load i32, i32* %10
%167 = icmp eq i32 %166, 2574
br i1 %167, label %477, label %168
168: ; preds = %165
%169 = load i32, i32* %10
%170 = icmp eq i32 %169, 3330
br i1 %170, label %477, label %171
171: ; preds = %168
%172 = load i32, i32* %10
%173 = icmp eq i32 %172, 3334
br i1 %173, label %477, label %174
174: ; preds = %171
%175 = load i32, i32* %10
%176 = icmp eq i32 %175, 3338
br i1 %176, label %477, label %177
177: ; preds = %174
%178 = load i32, i32* %10
%179 = icmp eq i32 %178, 3339
br i1 %179, label %477, label %180
180: ; preds = %177
%181 = load i32, i32* %10
%182 = icmp eq i32 %181, 3342
br i1 %182, label %477, label %183
183: ; preds = %180
%184 = load i32, i32* %10
%185 = icmp eq i32 %184, 1042
br i1 %185, label %477, label %186
186: ; preds = %183
%187 = load i32, i32* %10
%188 = icmp eq i32 %187, 1046
br i1 %188, label %477, label %189
189: ; preds = %186
%190 = load i32, i32* %10
%191 = icmp eq i32 %190, 1050
br i1 %191, label %477, label %192
192: ; preds = %189
%193 = load i32, i32* %10
%194 = icmp eq i32 %193, 1051
br i1 %194, label %477, label %195
195: ; preds = %192
%196 = load i32, i32* %10
%197 = icmp eq i32 %196, 1054
br i1 %197, label %477, label %198
198: ; preds = %195
%199 = load i32, i32* %10
%200 = icmp eq i32 %199, 3090
br i1 %200, label %477, label %201
201: ; preds = %198
%202 = load i32, i32* %10
%203 = icmp eq i32 %202, 3094
br i1 %203, label %477, label %204
204: ; preds = %201
%205 = load i32, i32* %10
%206 = icmp eq i32 %205, 3098
br i1 %206, label %477, label %207
207: ; preds = %204
%208 = load i32, i32* %10
%209 = icmp eq i32 %208, 3099
br i1 %209, label %477, label %210
210: ; preds = %207
%211 = load i32, i32* %10
%212 = icmp eq i32 %211, 3102
br i1 %212, label %477, label %213
213: ; preds = %210
%214 = load i32, i32* %10
%215 = icmp eq i32 %214, 2578
br i1 %215, label %477, label %216
216: ; preds = %213
%217 = load i32, i32* %10
%218 = icmp eq i32 %217, 2582
br i1 %218, label %477, label %219
219: ; preds = %216
%220 = load i32, i32* %10
%221 = icmp eq i32 %220, 2586
br i1 %221, label %477, label %222
222: ; preds = %219
%223 = load i32, i32* %10
%224 = icmp eq i32 %223, 2587
br i1 %224, label %477, label %225
225: ; preds = %222
%226 = load i32, i32* %10
%227 = icmp eq i32 %226, 2590
br i1 %227, label %477, label %228
228: ; preds = %225
%229 = load i32, i32* %10
%230 = icmp eq i32 %229, 3346
br i1 %230, label %477, label %231
231: ; preds = %228
%232 = load i32, i32* %10
%233 = icmp eq i32 %232, 3350
br i1 %233, label %477, label %234
234: ; preds = %231
%235 = load i32, i32* %10
%236 = icmp eq i32 %235, 3354
br i1 %236, label %477, label %237
237: ; preds = %234
%238 = load i32, i32* %10
%239 = icmp eq i32 %238, 3355
br i1 %239, label %477, label %240
240: ; preds = %237
%241 = load i32, i32* %10
%242 = icmp eq i32 %241, 3358
br i1 %242, label %477, label %243
243: ; preds = %240
%244 = load i32, i32* %10
%245 = icmp eq i32 %244, 1058
br i1 %245, label %477, label %246
246: ; preds = %243
%247 = load i32, i32* %10
%248 = icmp eq i32 %247, 1062
br i1 %248, label %477, label %249
249: ; preds = %246
%250 = load i32, i32* %10
%251 = icmp eq i32 %250, 1066
br i1 %251, label %477, label %252
252: ; preds = %249
%253 = load i32, i32* %10
%254 = icmp eq i32 %253, 1067
br i1 %254, label %477, label %255
255: ; preds = %252
%256 = load i32, i32* %10
%257 = icmp eq i32 %256, 1070
br i1 %257, label %477, label %258
258: ; preds = %255
%259 = load i32, i32* %10
%260 = icmp eq i32 %259, 3106
br i1 %260, label %477, label %261
261: ; preds = %258
%262 = load i32, i32* %10
%263 = icmp eq i32 %262, 3110
br i1 %263, label %477, label %264
264: ; preds = %261
%265 = load i32, i32* %10
%266 = icmp eq i32 %265, 3114
br i1 %266, label %477, label %267
267: ; preds = %264
%268 = load i32, i32* %10
%269 = icmp eq i32 %268, 3115
br i1 %269, label %477, label %270
270: ; preds = %267
%271 = load i32, i32* %10
%272 = icmp eq i32 %271, 3118
br i1 %272, label %477, label %273
273: ; preds = %270
%274 = load i32, i32* %10
%275 = icmp eq i32 %274, 2594
br i1 %275, label %477, label %276
276: ; preds = %273
%277 = load i32, i32* %10
%278 = icmp eq i32 %277, 2598
br i1 %278, label %477, label %279
279: ; preds = %276
%280 = load i32, i32* %10
%281 = icmp eq i32 %280, 2602
br i1 %281, label %477, label %282
282: ; preds = %279
%283 = load i32, i32* %10
%284 = icmp eq i32 %283, 2603
br i1 %284, label %477, label %285
285: ; preds = %282
%286 = load i32, i32* %10
%287 = icmp eq i32 %286, 2606
br i1 %287, label %477, label %288
288: ; preds = %285
%289 = load i32, i32* %10
%290 = icmp eq i32 %289, 3362
br i1 %290, label %477, label %291
291: ; preds = %288
%292 = load i32, i32* %10
%293 = icmp eq i32 %292, 3366
br i1 %293, label %477, label %294
294: ; preds = %291
%295 = load i32, i32* %10
%296 = icmp eq i32 %295, 3370
br i1 %296, label %477, label %297
297: ; preds = %294
%298 = load i32, i32* %10
%299 = icmp eq i32 %298, 3371
br i1 %299, label %477, label %300
300: ; preds = %297
%301 = load i32, i32* %10
%302 = icmp eq i32 %301, 3374
br i1 %302, label %477, label %303
303: ; preds = %300
%304 = load i32, i32* %10
%305 = icmp eq i32 %304, 3888
br i1 %305, label %477, label %306
306: ; preds = %303
%307 = load i32, i32* %10
%308 = icmp eq i32 %307, 3889
br i1 %308, label %477, label %309
309: ; preds = %306
%310 = load i32, i32* %10
%311 = icmp eq i32 %310, 3890
br i1 %311, label %477, label %312
312: ; preds = %309
%313 = load i32, i32* %10
%314 = icmp eq i32 %313, 3891
br i1 %314, label %477, label %315
315: ; preds = %312
%316 = load i32, i32* %10
%317 = and i32 %316, 65280
%318 = icmp ne i32 %317, 5632
br i1 %318, label %319, label %320
319: ; preds = %315
br i1 false, label %477, label %357
320: ; preds = %315
%321 = load i32, i32* %10
%322 = and i32 %321, 240
%323 = ashr i32 %322, 4
%324 = icmp sgt i32 %323, 3
br i1 %324, label %325, label %326
325: ; preds = %320
br i1 false, label %477, label %357
326: ; preds = %320
%327 = load i32, i32* %10
%328 = and i32 %327, 15
%329 = icmp eq i32 %328, 2
br i1 %329, label %330, label %331
330: ; preds = %326
br i1 true, label %477, label %357
331: ; preds = %326
%332 = load i32, i32* %10
%333 = and i32 %332, 15
%334 = icmp eq i32 %333, 6
br i1 %334, label %335, label %336
335: ; preds = %331
br i1 true, label %477, label %357
336: ; preds = %331
%337 = load i32, i32* %10
%338 = and i32 %337, 15
%339 = icmp eq i32 %338, 11
br i1 %339, label %340, label %341
340: ; preds = %336
br i1 true, label %477, label %357
341: ; preds = %336
%342 = load i32, i32* %10
%343 = and i32 %342, 15
%344 = icmp eq i32 %343, 10
br i1 %344, label %345, label %346
345: ; preds = %341
br i1 true, label %477, label %357
346: ; preds = %341
%347 = load i32, i32* %10
%348 = and i32 %347, 15
%349 = icmp eq i32 %348, 13
br i1 %349, label %350, label %351
350: ; preds = %346
br i1 true, label %477, label %357
351: ; preds = %346
%352 = load i32, i32* %10
%353 = and i32 %352, 15
%354 = icmp eq i32 %353, 14
br i1 %354, label %355, label %356
355: ; preds = %351
br i1 true, label %477, label %357
356: ; preds = %351
br i1 false, label %477, label %357
357: ; preds = %356, %355, %350, %345, %340, %335, %330, %325, %319
%358 = load i32, i32* %10
%359 = icmp eq i32 %358, 8880
br i1 %359, label %477, label %360
360: ; preds = %357
%361 = load i32, i32* %10
%362 = icmp eq i32 %361, 8881
br i1 %362, label %477, label %363
363: ; preds = %360
%364 = load i32, i32* %10
%365 = icmp eq i32 %364, 8882
br i1 %365, label %477, label %366
366: ; preds = %363
%367 = load i32, i32* %10
%368 = icmp eq i32 %367, 8883
br i1 %368, label %477, label %369
369: ; preds = %366
%370 = load i32, i32* %10
%371 = icmp eq i32 %370, 22803
br i1 %371, label %477, label %372
372: ; preds = %369
%373 = load i32, i32* %10
%374 = icmp eq i32 %373, 22805
br i1 %374, label %477, label %375
375: ; preds = %372
%376 = load i32, i32* %10
%377 = icmp eq i32 %376, 22807
br i1 %377, label %477, label %378
378: ; preds = %375
%379 = load i32, i32* %10
%380 = icmp eq i32 %379, 22790
br i1 %380, label %477, label %381
381: ; preds = %378
%382 = load i32, i32* %10
%383 = icmp eq i32 %382, 22798
br i1 %383, label %477, label %384
384: ; preds = %381
%385 = load i32, i32* %10
%386 = icmp eq i32 %385, 22786
br i1 %386, label %477, label %387
387: ; preds = %384
%388 = load i32, i32* %10
%389 = icmp eq i32 %388, 22795
br i1 %389, label %477, label %390
390: ; preds = %387
%391 = load i32, i32* %10
%392 = icmp eq i32 %391, 22794
br i1 %392, label %477, label %393
393: ; preds = %390
%394 = load i32, i32* %10
%395 = icmp eq i32 %394, 22806
br i1 %395, label %477, label %396
396: ; preds = %393
%397 = load i32, i32* %10
%398 = icmp eq i32 %397, 22817
br i1 %398, label %477, label %399
399: ; preds = %396
%400 = load i32, i32* %10
%401 = icmp eq i32 %400, 22814
br i1 %401, label %477, label %402
402: ; preds = %399
%403 = load i32, i32* %10
%404 = icmp eq i32 %403, 22802
br i1 %404, label %477, label %405
405: ; preds = %402
%406 = load i32, i32* %10
%407 = icmp eq i32 %406, 22811
br i1 %407, label %477, label %408
408: ; preds = %405
%409 = load i32, i32* %10
%410 = icmp eq i32 %409, 22810
br i1 %410, label %477, label %411
411: ; preds = %408
%412 = load i32, i32* %10
%413 = icmp eq i32 %412, 22813
br i1 %413, label %477, label %414
414: ; preds = %411
%415 = load i32, i32* %10
%416 = icmp eq i32 %415, 22822
br i1 %416, label %477, label %417
417: ; preds = %414
%418 = load i32, i32* %10
%419 = icmp eq i32 %418, 22827
br i1 %419, label %477, label %420
420: ; preds = %417
%421 = load i32, i32* %10
%422 = icmp eq i32 %421, 22826
br i1 %422, label %477, label %423
423: ; preds = %420
%424 = load i32, i32* %10
%425 = icmp eq i32 %424, 6406
br i1 %425, label %477, label %426
426: ; preds = %423
%427 = load i32, i32* %10
%428 = icmp eq i32 %427, 6414
br i1 %428, label %477, label %429
429: ; preds = %426
%430 = load i32, i32* %10
%431 = icmp eq i32 %430, 6402
br i1 %431, label %477, label %432
432: ; preds = %429
%433 = load i32, i32* %10
%434 = icmp eq i32 %433, 6411
br i1 %434, label %477, label %435
435: ; preds = %432
%436 = load i32, i32* %10
%437 = icmp eq i32 %436, 6410
br i1 %437, label %477, label %438
438: ; preds = %435
%439 = load i32, i32* %10
%440 = icmp eq i32 %439, 6422
br i1 %440, label %477, label %441
441: ; preds = %438
%442 = load i32, i32* %10
%443 = icmp eq i32 %442, 6433
br i1 %443, label %477, label %444
444: ; preds = %441
%445 = load i32, i32* %10
%446 = icmp eq i32 %445, 6430
br i1 %446, label %477, label %447
447: ; preds = %444
%448 = load i32, i32* %10
%449 = icmp eq i32 %448, 6418
br i1 %449, label %477, label %450
450: ; preds = %447
%451 = load i32, i32* %10
%452 = icmp eq i32 %451, 6427
br i1 %452, label %477, label %453
453: ; preds = %450
%454 = load i32, i32* %10
%455 = icmp eq i32 %454, 6426
br i1 %455, label %477, label %456
456: ; preds = %453
%457 = load i32, i32* %10
%458 = icmp eq i32 %457, 6429
br i1 %458, label %477, label %459
459: ; preds = %456
%460 = load i32, i32* %10
%461 = icmp eq i32 %460, 6438
br i1 %461, label %477, label %462
462: ; preds = %459
%463 = load i32, i32* %10
%464 = icmp eq i32 %463, 6443
br i1 %464, label %477, label %465
465: ; preds = %462
%466 = load i32, i32* %10
%467 = icmp eq i32 %466, 6442
br i1 %467, label %477, label %468
468: ; preds = %465
%469 = load i32, i32* %10
%470 = icmp eq i32 %469, 2692
br i1 %470, label %477, label %471
471: ; preds = %468
%472 = load i32, i32* %10
%473 = icmp eq i32 %472, 6788
br i1 %473, label %477, label %474
474: ; preds = %471
%475 = load i32, i32* %10
%476 = icmp eq i32 %475, 23172
br i1 %476, label %477, label %484
477: ; preds = %474, %471, %468, %465, %462, %459, %456, %453, %450, %447, %444, %441, %438, %435, %432, %429, %426, %423, %420, %417, %414, %411, %408, %405, %402, %399, %396, %393, %390, %387, %384, %381, %378, %375, %372, %369, %366, %363, %360, %357, %356, %355, %350, %345, %340, %335, %330, %325, %319, %312, %309, %306, %303, %300, %297, %294, %291, %288, %285, %282, %279, %276, %273, %270, %267, %264, %261, %258, %255, %252, %249, %246, %243, %240, %237, %234, %231, %228, %225, %222, %219, %216, %213, %210, %207, %204, %201, %198, %195, %192, %189, %186, %183, %180, %177, %174, %171, %168, %165, %162, %159, %156, %153, %150, %147, %144, %141, %138, %135, %132, %129, %126, %123, %120, %117, %114, %111, %108, %105, %102, %99, %96, %93, %90, %87, %84, %81, %78, %75, %72, %69, %66, %63, %60, %57, %54, %51, %48, %45
%478 = load i32, i32* %9
%479 = and i32 %478, 2
%480 = icmp ne i32 %479, 0
br i1 %480, label %481, label %482
481: ; preds = %477
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str, i64 0, i64 0), i8** %11
br label %483
482: ; preds = %477
store i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.1, i64 0, i64 0), i8** %11
br label %483
483: ; preds = %482, %481
br label %492
484: ; preds = %474
%485 = load i32, i32* %9
%486 = and i32 %485, 3
switch i32 %486, label %491 [
i32 0, label %487
i32 1, label %488
i32 2, label %489
i32 3, label %490
]
487: ; preds = %484
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0), i8** %11
br label %491
488: ; preds = %484
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.3, i64 0, i64 0), i8** %11
br label %491
489: ; preds = %484
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str, i64 0, i64 0), i8** %11
br label %491
490: ; preds = %484
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.4, i64 0, i64 0), i8** %11
br label %491
491: ; preds = %484, %490, %489, %488, %487
br label %492
492: ; preds = %491, %483
%493 = load i8*, i8** %6
%494 = load i32, i32* %7
%495 = load i8*, i8** %11
%496 = load i32, i32* %9
%497 = and i32 %496, 1024
%498 = icmp ne i32 %497, 0
%499 = zext i1 %498 to i64
%500 = select i1 %498, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0)
%501 = load i32, i32* %9
%502 = and i32 %501, 512
%503 = icmp ne i32 %502, 0
%504 = zext i1 %503 to i64
%505 = select i1 %503, i32 17, i32 11
%506 = call i32 @snprintf(i8* %493, i32 %494, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.5, i64 0, i64 0), i8* %495, i8* %500, i32 %505)
br label %507
507: ; preds = %492, %44
ret void
}

LLVM IR (-O2):
@.str = [25 x i8] c"dual channel interleaved\00"
@.str.1 = [34 x i8] c"single or dual channel asymmetric\00"
@.str.2 = [15 x i8] c"single channel\00"
@.str.3 = [24 x i8] c"dual channel asymmetric\00"
@.str.4 = [23 x i8] c"unknown channel layout\00"
@.str.5 = [44 x i8] c"%s, XOR randomization: %sabled, XOR bit: %d\00"
@.str.6 = [4 x i8] c"dis\00"
@.str.7 = [3 x i8] c"en\00"
@reltable.i830_debug_dcc = [4 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([15 x i8]* @.str.2 to i64), i64 ptrtoint ([4 x i32]* @reltable.i830_debug_dcc to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.3 to i64), i64 ptrtoint ([4 x i32]* @reltable.i830_debug_dcc to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([25 x i8]* @.str to i64), i64 ptrtoint ([4 x i32]* @reltable.i830_debug_dcc to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.4 to i64), i64 ptrtoint ([4 x i32]* @reltable.i830_debug_dcc to i64)) to i32)]
define void @i830_debug_dcc(i8* %0, i32 %1, i32 %2, i32 %3, i32 %4) {
switch i32 %4, label %36 [
i32 40977, label %6
i32 40961, label %6
i32 13698, label %6
i32 10818, label %6
i32 10770, label %6
i32 10754, label %6
i32 10158, label %6
i32 10146, label %6
i32 9618, label %6
i32 358, label %6
i32 342, label %6
]
6: ; preds = %5, %5, %5, %5, %5, %5, %5, %5, %5, %5, %5
switch i32 %4, label %7 [
i32 11826, label %18
i32 11810, label %18
i32 11794, label %18
i32 11778, label %18
i32 10818, label %18
i32 10770, label %18
i32 10754, label %18
i32 10658, label %18
i32 10642, label %18
i32 10626, label %18
i32 10610, label %18
i32 3891, label %18
i32 3890, label %18
i32 3889, label %18
i32 3888, label %18
i32 3374, label %18
i32 3371, label %18
i32 3370, label %18
i32 3366, label %18
i32 3362, label %18
i32 3358, label %18
i32 3355, label %18
i32 3354, label %18
i32 3350, label %18
i32 3346, label %18
i32 3342, label %18
i32 3339, label %18
i32 3338, label %18
i32 3334, label %18
i32 3330, label %18
i32 3118, label %18
i32 3115, label %18
i32 3114, label %18
i32 3110, label %18
i32 3106, label %18
i32 3102, label %18
i32 3099, label %18
i32 3098, label %18
i32 3094, label %18
i32 3090, label %18
i32 3086, label %18
i32 3083, label %18
i32 3082, label %18
i32 3078, label %18
i32 3074, label %18
i32 2606, label %18
i32 2603, label %18
i32 2602, label %18
i32 2598, label %18
i32 2594, label %18
i32 2590, label %18
i32 2587, label %18
i32 2586, label %18
i32 2582, label %18
i32 2578, label %18
i32 2574, label %18
i32 2571, label %18
i32 2570, label %18
i32 2566, label %18
i32 2562, label %18
i32 1070, label %18
i32 1067, label %18
i32 1066, label %18
i32 1062, label %18
i32 1058, label %18
i32 1054, label %18
i32 1051, label %18
i32 1050, label %18
i32 1046, label %18
i32 1042, label %18
i32 1038, label %18
i32 1035, label %18
i32 1034, label %18
i32 1030, label %18
i32 1026, label %18
i32 362, label %18
i32 358, label %18
i32 354, label %18
i32 346, label %18
i32 342, label %18
]
7: ; preds = %6
%8 = and i32 %4, 65472
%9 = icmp eq i32 %8, 5632
br i1 %9, label %10, label %16
10: ; preds = %7
%11 = and i32 %4, 15
switch i32 %11, label %12 [
i32 2, label %18
i32 6, label %18
i32 11, label %18
i32 10, label %18
i32 13, label %18
]
12: ; preds = %10
%13 = icmp eq i32 %11, 14
%14 = icmp eq i32 %4, 8880
%15 = or i1 %14, %13
br i1 %15, label %18, label %17
16: ; preds = %7
switch i32 %4, label %22 [
i32 8880, label %18
i32 23172, label %18
i32 22827, label %18
i32 22826, label %18
i32 22822, label %18
i32 22817, label %18
i32 22814, label %18
i32 22813, label %18
i32 22811, label %18
i32 22810, label %18
i32 22807, label %18
i32 22806, label %18
i32 22805, label %18
i32 22803, label %18
i32 22802, label %18
i32 22798, label %18
i32 22795, label %18
i32 22794, label %18
i32 22790, label %18
i32 22786, label %18
i32 8883, label %18
i32 8882, label %18
i32 8881, label %18
i32 6788, label %18
i32 6443, label %18
i32 6442, label %18
i32 6438, label %18
i32 6433, label %18
i32 6430, label %18
i32 6429, label %18
i32 6427, label %18
i32 6426, label %18
i32 6422, label %18
i32 6418, label %18
i32 6414, label %18
i32 6411, label %18
i32 6410, label %18
i32 6406, label %18
i32 6402, label %18
i32 2692, label %18
]
17: ; preds = %12
switch i32 %4, label %22 [
i32 23172, label %18
i32 22827, label %18
i32 22826, label %18
i32 22822, label %18
i32 22817, label %18
i32 22814, label %18
i32 22813, label %18
i32 22811, label %18
i32 22810, label %18
i32 22807, label %18
i32 22806, label %18
i32 22805, label %18
i32 22803, label %18
i32 22802, label %18
i32 22798, label %18
i32 22795, label %18
i32 22794, label %18
i32 22790, label %18
i32 22786, label %18
i32 8883, label %18
i32 8882, label %18
i32 8881, label %18
i32 6788, label %18
i32 6443, label %18
i32 6442, label %18
i32 6438, label %18
i32 6433, label %18
i32 6430, label %18
i32 6429, label %18
i32 6427, label %18
i32 6426, label %18
i32 6422, label %18
i32 6418, label %18
i32 6414, label %18
i32 6411, label %18
i32 6410, label %18
i32 6406, label %18
i32 6402, label %18
]
18: ; preds = %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %16, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %17, %10, %10, %10, %10, %10, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %12
%19 = and i32 %3, 2
%20 = icmp eq i32 %19, 0
%21 = select i1 %20, i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str, i64 0, i64 0)
br label %27
22: ; preds = %16, %17
%23 = and i32 %3, 3
%24 = zext i32 %23 to i64
%25 = shl i64 %24, 2
%26 = call i8* @llvm.load.relative.i64(i8* bitcast ([4 x i32]* @reltable.i830_debug_dcc to i8*), i64 %25)
br label %27
27: ; preds = %22, %18
%28 = phi i8* [ %21, %18 ], [ %26, %22 ]
%29 = and i32 %3, 1024
%30 = icmp eq i32 %29, 0
%31 = select i1 %30, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0)
%32 = and i32 %3, 512
%33 = icmp eq i32 %32, 0
%34 = select i1 %33, i32 11, i32 17
%35 = tail call i32 @snprintf(i8* %0, i32 %1, i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.5, i64 0, i64 0), i8* %28, i8* %31, i32 %34)
br label %36
36: ; preds = %5, %27
ret void
}