#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 */

/* Variables and functions */
int get_cputype(int);
int get_vendor();
int /*<<< orphan*/ have_cpuid();
int /*<<< orphan*/ support_avx();
int get_coretype(void) {
  int family, exfamily, model, exmodel, vendor;
  if (!have_cpuid())
    return 1;
  family = get_cputype(4);
  exfamily = get_cputype(1);
  model = get_cputype(5);
  exmodel = get_cputype(2);
  vendor = get_vendor();
  if (vendor == 1) {
    switch (family) {
    case 4:
      return 1;
    case 5:
      return 2;
    case 6:
      switch (exmodel) {
      case 0:
        switch (model) {
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
        case 6:
          return 3;
        case 7:
          return 4;
        case 8:
        case 10:
        case 11:
          return 5;
        case 9:
        case 13:
        case 14:
          return 8;
        case 15:
          return 14;
        }
        break;
      case 1:
        switch (model) {
        case 6:
          return 14;
        case 7:
          return 15;
        case 10:
        case 11:
        case 14:
        case 15:
          return 17;
        case 12:
          return 18;
        case 13:
          return 16;
        }
        break;
      case 2:
        switch (model) {
        case 5:
          return 17;
        case 10:
          if (support_avx())
            return 20;
          else
            return 17;
        case 12:
          return 17;
        case 13:
          if (support_avx())
            return 20;
          else
            return 17;
        case 14:
        case 15:
          return 17;
        }
        break;
      case 3:
        switch (model) {
        case 7:
          return 18;
        case 10:
        case 14:
          if (support_avx())
            return 20;
          else
            return 17;
        case 12:
        case 15:
          if (support_avx())
            return 24;
          else
            return 17;
        case 13:
          if (support_avx())
            return 24;
          else
            return 17;
        }
        break;
      case 4:
        switch (model) {
        case 5:
        case 6:
          if (support_avx())
            return 24;
          else
            return 17;
        case 7:
        case 15:
          if (support_avx())
            return 24;
          else
            return 17;
        case 14:
          if (support_avx())
            return 24;
          else
            return 17;
        case 12:
        case 13:
          return 17;
        }
        break;
      case 5:
        switch (model) {
        case 6:
          if (support_avx())
            return 24;
          else
            return 17;
        case 5:
        case 14:
          if (support_avx())
            return 24;
          else
            return 17;
        case 7:
          if (support_avx())
            return 24;
          else
            return 17;
        case 12:
          return 17;
        }
        break;
      case 9:
      case 8:
        if (model == 14) {
          if (support_avx())
            return 24;
          else
            return 17;
        }
      }
      break;
    case 15:
      if (model <= 0x2)
        return 6;
      else
        return 7;
    }
  }
  if (vendor == 3) {
    if (family <= 0x5)
      return 1;
    if (family <= 0xe)
      return 9;
    if (family == 0xf) {
      if ((exfamily == 0) || (exfamily == 2))
        return 10;
      else if (exfamily == 5)
        return 21;
      else if (exfamily == 6) {
        switch (model) {
        case 1:
          if (support_avx())
            return 22;
          else
            return 11;
        case 2:
        case 3:
          if (support_avx())
            return 23;
          else
            return 11;
        case 5:
          if (support_avx())
            return 26;
          else
            return 11;
        case 0:
        case 8:
          switch (exmodel) {
          case 1:
            if (support_avx())
              return 23;
            else
              return 11;
          case 3:
            if (support_avx())
              return 25;
            else
              return 11;
          case 6:
            if (support_avx())
              return 26;
            else
              return 11;
          }
          break;
        }
      } else if (exfamily == 8) {
        switch (model) {
        case 1:
          if (support_avx())
            return 27;
          else
            return 11;
        }
      } else {
        return 11;
      }
    }
  }
  if (vendor == 6) {
    switch (family) {
    case 0x6:
      return 19;
      break;
    }
    return 12;
  }
  return 0;
}


x86 assembly (clang, -O0):
<get_coretype>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
mov    $0x0,%al
call   1060 <have_cpuid@plt>
cmp    $0x0,%eax
jne    1164 <get_coretype+0x24>
movl   $0x1,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x4,%edi
call   1030 <get_cputype@plt>
mov    %eax,-0x8(%rbp)
mov    $0x1,%edi
call   1030 <get_cputype@plt>
mov    %eax,-0xc(%rbp)
mov    $0x5,%edi
call   1030 <get_cputype@plt>
mov    %eax,-0x10(%rbp)
mov    $0x2,%edi
call   1030 <get_cputype@plt>
mov    %eax,-0x14(%rbp)
mov    $0x0,%al
call   1040 <get_vendor@plt>
mov    %eax,-0x18(%rbp)
cmpl   $0x1,-0x18(%rbp)
jne    15fd <get_coretype+0x4bd>
mov    -0x8(%rbp),%eax
add    $0xfffffffc,%eax
mov    %eax,%ecx
mov    %rcx,-0x20(%rbp)
sub    $0xb,%eax
ja     15f8 <get_coretype+0x4b8>
mov    -0x20(%rbp),%rax
lea    0xe34(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x1,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x2,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    -0x14(%rbp),%eax
mov    %rax,-0x28(%rbp)
sub    $0x9,%rax
ja     15d1 <get_coretype+0x491>
mov    -0x28(%rbp),%rax
lea    0xe27(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%eax
mov    %rax,-0x30(%rbp)
sub    $0xf,%rax
ja     1273 <get_coretype+0x133>
mov    -0x30(%rbp),%rax
lea    0xef6(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x3,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x4,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x5,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x8,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0xe,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
jmp    15d1 <get_coretype+0x491>
mov    -0x10(%rbp),%eax
add    $0xfffffffa,%eax
mov    %eax,%ecx
mov    %rcx,-0x38(%rbp)
sub    $0x9,%eax
ja     12dd <get_coretype+0x19d>
mov    -0x38(%rbp),%rax
lea    0xe64(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xe,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0xf,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x12,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x10,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
jmp    15d1 <get_coretype+0x491>
mov    -0x10(%rbp),%eax
add    $0xfffffffb,%eax
mov    %eax,%ecx
mov    %rcx,-0x40(%rbp)
sub    $0xa,%eax
ja     137f <get_coretype+0x23f>
mov    -0x40(%rbp),%rax
lea    0xdce(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     1333 <get_coretype+0x1f3>
movl   $0x14,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     1367 <get_coretype+0x227>
movl   $0x14,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
jmp    15d1 <get_coretype+0x491>
mov    -0x10(%rbp),%eax
add    $0xfffffff9,%eax
mov    %eax,%ecx
mov    %rcx,-0x48(%rbp)
sub    $0x8,%eax
ja     1431 <get_coretype+0x2f1>
mov    -0x48(%rbp),%rax
lea    0xd08(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x12,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     13d5 <get_coretype+0x295>
movl   $0x14,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     13fd <get_coretype+0x2bd>
movl   $0x18,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     1425 <get_coretype+0x2e5>
movl   $0x18,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
jmp    15d1 <get_coretype+0x491>
mov    -0x10(%rbp),%eax
add    $0xfffffffb,%eax
mov    %eax,%ecx
mov    %rcx,-0x50(%rbp)
sub    $0xa,%eax
ja     14e3 <get_coretype+0x3a3>
mov    -0x50(%rbp),%rax
lea    0xc2a(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     147b <get_coretype+0x33b>
movl   $0x18,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     14a3 <get_coretype+0x363>
movl   $0x18,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     14cb <get_coretype+0x38b>
movl   $0x18,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
jmp    15d1 <get_coretype+0x491>
mov    -0x10(%rbp),%eax
add    $0xfffffffb,%eax
mov    %eax,%ecx
mov    %rcx,-0x58(%rbp)
sub    $0x9,%eax
ja     1595 <get_coretype+0x455>
mov    -0x58(%rbp),%rax
lea    0xb50(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     152d <get_coretype+0x3ed>
movl   $0x18,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     1555 <get_coretype+0x415>
movl   $0x18,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     157d <get_coretype+0x43d>
movl   $0x18,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
jmp    15d1 <get_coretype+0x491>
cmpl   $0xe,-0x10(%rbp)
jne    15cc <get_coretype+0x48c>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     15c0 <get_coretype+0x480>
movl   $0x18,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x11,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
jmp    15d1 <get_coretype+0x491>
jmp    15f8 <get_coretype+0x4b8>
cmpl   $0x2,-0x10(%rbp)
jg     15ec <get_coretype+0x4ac>
movl   $0x6,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x7,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
jmp    15fd <get_coretype+0x4bd>
cmpl   $0x3,-0x18(%rbp)
jne    183f <get_coretype+0x6ff>
cmpl   $0x5,-0x8(%rbp)
jg     161d <get_coretype+0x4dd>
movl   $0x1,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
cmpl   $0xe,-0x8(%rbp)
jg     1633 <get_coretype+0x4f3>
movl   $0x9,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
cmpl   $0xf,-0x8(%rbp)
jne    183a <get_coretype+0x6fa>
cmpl   $0x0,-0xc(%rbp)
je     1651 <get_coretype+0x511>
cmpl   $0x2,-0xc(%rbp)
jne    165d <get_coretype+0x51d>
movl   $0xa,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
cmpl   $0x5,-0xc(%rbp)
jne    1673 <get_coretype+0x533>
movl   $0x15,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
cmpl   $0x6,-0xc(%rbp)
jne    17d2 <get_coretype+0x692>
mov    -0x10(%rbp),%eax
mov    %rax,-0x60(%rbp)
sub    $0x8,%rax
ja     17cd <get_coretype+0x68d>
mov    -0x60(%rbp),%rax
lea    0xacb(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     16be <get_coretype+0x57e>
movl   $0x16,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0xb,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     16e6 <get_coretype+0x5a6>
movl   $0x17,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0xb,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     170e <get_coretype+0x5ce>
movl   $0x1a,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0xb,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    -0x14(%rbp),%eax
mov    %eax,-0x64(%rbp)
sub    $0x1,%eax
je     1750 <get_coretype+0x610>
jmp    172e <get_coretype+0x5ee>
mov    -0x64(%rbp),%eax
sub    $0x3,%eax
je     1778 <get_coretype+0x638>
jmp    173f <get_coretype+0x5ff>
mov    -0x64(%rbp),%eax
sub    $0x6,%eax
je     17a0 <get_coretype+0x660>
jmp    17c8 <get_coretype+0x688>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     176c <get_coretype+0x62c>
movl   $0x17,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0xb,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     1794 <get_coretype+0x654>
movl   $0x19,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0xb,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     17bc <get_coretype+0x67c>
movl   $0x1a,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0xb,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
jmp    17cd <get_coretype+0x68d>
jmp    182b <get_coretype+0x6eb>
cmpl   $0x8,-0xc(%rbp)
jne    181a <get_coretype+0x6da>
mov    -0x10(%rbp),%eax
sub    $0x1,%eax
jne    1815 <get_coretype+0x6d5>
jmp    17ed <get_coretype+0x6ad>
mov    $0x0,%al
call   1050 <support_avx@plt>
cmp    $0x0,%eax
je     1809 <get_coretype+0x6c9>
movl   $0x1b,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0xb,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
jmp    1826 <get_coretype+0x6e6>
movl   $0xb,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
jmp    182b <get_coretype+0x6eb>
jmp    1830 <get_coretype+0x6f0>
jmp    1835 <get_coretype+0x6f5>
jmp    183a <get_coretype+0x6fa>
jmp    183f <get_coretype+0x6ff>
cmpl   $0x6,-0x18(%rbp)
jne    1872 <get_coretype+0x732>
mov    -0x8(%rbp),%eax
sub    $0x6,%eax
jne    1866 <get_coretype+0x726>
jmp    185a <get_coretype+0x71a>
movl   $0x13,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0xc,-0x4(%rbp)
jmp    1879 <get_coretype+0x739>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<get_coretype>:
push   %rbp
push   %r15
push   %r14
push   %rbx
push   %rax
xor    %eax,%eax
call   1060 <have_cpuid@plt>
test   %eax,%eax
je     11c9 <get_coretype+0x89>
mov    $0x4,%edi
call   1030 <get_cputype@plt>
mov    %eax,%ebx
mov    $0x1,%edi
call   1030 <get_cputype@plt>
mov    %eax,%ebp
mov    $0x5,%edi
call   1030 <get_cputype@plt>
mov    %eax,%r14d
mov    $0x2,%edi
call   1030 <get_cputype@plt>
mov    %eax,%r15d
xor    %eax,%eax
call   1040 <get_vendor@plt>
cmp    $0x6,%eax
je     11d3 <get_coretype+0x93>
cmp    $0x3,%eax
je     11e8 <get_coretype+0xa8>
cmp    $0x1,%eax
jne    13c9 <get_coretype+0x289>
add    $0xfffffffc,%ebx
cmp    $0xb,%ebx
ja     13c9 <get_coretype+0x289>
mov    $0x1,%eax
lea    0xe6e(%rip),%rcx
movslq (%rcx,%rbx,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
mov    $0x2,%eax
jmp    13cb <get_coretype+0x28b>
mov    $0x1,%eax
jmp    13cb <get_coretype+0x28b>
cmp    $0x6,%ebx
mov    $0x13,%ecx
mov    $0xc,%eax
cmove  %ecx,%eax
jmp    13cb <get_coretype+0x28b>
mov    $0x1,%eax
cmp    $0x6,%ebx
jl     13cb <get_coretype+0x28b>
mov    $0x9,%eax
cmp    $0xf,%ebx
jb     13cb <get_coretype+0x28b>
jne    13c9 <get_coretype+0x289>
test   $0xfffffffd,%ebp
je     12cb <get_coretype+0x18b>
cmp    $0x5,%ebp
je     13d6 <get_coretype+0x296>
cmp    $0x8,%ebp
je     13dd <get_coretype+0x29d>
cmp    $0x6,%ebp
jne    1400 <get_coretype+0x2c0>
cmp    $0x8,%r14d
ja     13c9 <get_coretype+0x289>
mov    %r14d,%eax
lea    0xdbb(%rip),%rcx
movslq (%rcx,%rax,4),%rdx
add    %rcx,%rdx
xor    %eax,%eax
jmp    *%rdx
cmp    $0x6,%r15d
je     1407 <get_coretype+0x2c7>
cmp    $0x3,%r15d
je     1437 <get_coretype+0x2f7>
mov    $0x0,%eax
cmp    $0x1,%r15d
jne    13cb <get_coretype+0x28b>
xor    %eax,%eax
call   1050 <support_avx@plt>
test   %eax,%eax
mov    $0xb,%ecx
mov    $0x17,%eax
cmove  %ecx,%eax
jmp    13cb <get_coretype+0x28b>
cmp    $0x9,%r15d
ja     13c9 <get_coretype+0x289>
mov    %r15d,%eax
lea    0xdb2(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
cmp    $0xe,%r14d
je     13b1 <get_coretype+0x271>
jmp    13c9 <get_coretype+0x289>
xor    %eax,%eax
cmp    $0x3,%r14d
setl   %al
xor    $0x7,%eax
jmp    13cb <get_coretype+0x28b>
mov    $0xa,%eax
jmp    13cb <get_coretype+0x28b>
cmp    $0x10,%r14d
jae    13c9 <get_coretype+0x289>
movslq %r14d,%rax
lea    0xe0b(%rip),%rcx
jmp    1303 <get_coretype+0x1c3>
add    $0xfffffffa,%r14d
cmp    $0xa,%r14d
jae    13c9 <get_coretype+0x289>
movslq %r14d,%rax
lea    0xe31(%rip),%rcx
mov    (%rcx,%rax,4),%eax
jmp    13cb <get_coretype+0x28b>
cmp    $0xf,%r14d
ja     13c9 <get_coretype+0x289>
mov    $0x11,%eax
mov    $0xd020,%ecx
bt     %r14d,%ecx
jb     13cb <get_coretype+0x28b>
cmp    $0xa,%r14d
je     135d <get_coretype+0x21d>
cmp    $0xd,%r14d
je     135d <get_coretype+0x21d>
jmp    13c9 <get_coretype+0x289>
add    $0xfffffff9,%r14d
cmp    $0x8,%r14d
ja     13c9 <get_coretype+0x289>
mov    $0x12,%eax
lea    0xd7c(%rip),%rcx
movslq (%rcx,%r14,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
xor    %eax,%eax
call   1050 <support_avx@plt>
xor    %ecx,%ecx
test   %eax,%eax
setne  %cl
lea    (%rcx,%rcx,2),%eax
add    $0x11,%eax
jmp    13cb <get_coretype+0x28b>
add    $0xfffffffb,%r14d
cmp    $0xa,%r14d
ja     13c9 <get_coretype+0x289>
mov    $0x11,%eax
lea    0xd1b(%rip),%rcx
movslq (%rcx,%r14,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
add    $0xfffffffb,%r14d
cmp    $0x9,%r14d
ja     13c9 <get_coretype+0x289>
mov    $0x11,%eax
lea    0xcd4(%rip),%rcx
movslq (%rcx,%r14,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
xor    %eax,%eax
call   1050 <support_avx@plt>
test   %eax,%eax
mov    $0x11,%ecx
mov    $0x18,%eax
cmove  %ecx,%eax
jmp    13cb <get_coretype+0x28b>
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret
mov    $0x15,%eax
jmp    13cb <get_coretype+0x28b>
mov    $0x0,%eax
cmp    $0x1,%r14d
jne    13cb <get_coretype+0x28b>
xor    %eax,%eax
call   1050 <support_avx@plt>
mov    %eax,%ecx
xor    %eax,%eax
test   %ecx,%ecx
setne  %al
shl    $0x4,%eax
or     $0xb,%eax
jmp    13cb <get_coretype+0x28b>
mov    $0xb,%eax
jmp    13cb <get_coretype+0x28b>
xor    %eax,%eax
call   1050 <support_avx@plt>
test   %eax,%eax
mov    $0xb,%ecx
mov    $0x1a,%eax
cmove  %ecx,%eax
jmp    13cb <get_coretype+0x28b>
xor    %eax,%eax
call   1050 <support_avx@plt>
test   %eax,%eax
mov    $0xb,%ecx
mov    $0x16,%eax
cmove  %ecx,%eax
jmp    13cb <get_coretype+0x28b>
xor    %eax,%eax
call   1050 <support_avx@plt>
test   %eax,%eax
mov    $0xb,%ecx
mov    $0x19,%eax
cmove  %ecx,%eax
jmp    13cb <get_coretype+0x28b>

LLVM IR (-O0):
define i32 @get_coretype() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = call i32 (...) @have_cpuid()
%8 = icmp ne i32 %7, 0
br i1 %8, label %10, label %9
9: ; preds = %0
store i32 1, i32* %1
br label %218
10: ; preds = %0
%11 = call i32 @get_cputype(i32 4)
store i32 %11, i32* %2
%12 = call i32 @get_cputype(i32 1)
store i32 %12, i32* %3
%13 = call i32 @get_cputype(i32 5)
store i32 %13, i32* %4
%14 = call i32 @get_cputype(i32 2)
store i32 %14, i32* %5
%15 = call i32 (...) @get_vendor()
store i32 %15, i32* %6
%16 = load i32, i32* %6
%17 = icmp eq i32 %16, 1
br i1 %17, label %18, label %129
18: ; preds = %10
%19 = load i32, i32* %2
switch i32 %19, label %128 [
i32 4, label %20
i32 5, label %21
i32 6, label %22
i32 15, label %123
]
20: ; preds = %18
store i32 1, i32* %1
br label %218
21: ; preds = %18
store i32 2, i32* %1
br label %218
22: ; preds = %18
%23 = load i32, i32* %5
switch i32 %23, label %122 [
i32 0, label %24
i32 1, label %32
i32 2, label %40
i32 3, label %56
i32 4, label %75
i32 5, label %94
i32 9, label %113
i32 8, label %113
]
24: ; preds = %22
%25 = load i32, i32* %4
switch i32 %25, label %31 [
i32 0, label %26
i32 1, label %26
i32 2, label %26
i32 3, label %26
i32 4, label %26
i32 5, label %26
i32 6, label %26
i32 7, label %27
i32 8, label %28
i32 10, label %28
i32 11, label %28
i32 9, label %29
i32 13, label %29
i32 14, label %29
i32 15, label %30
]
26: ; preds = %24, %24, %24, %24, %24, %24, %24
store i32 3, i32* %1
br label %218
27: ; preds = %24
store i32 4, i32* %1
br label %218
28: ; preds = %24, %24, %24
store i32 5, i32* %1
br label %218
29: ; preds = %24, %24, %24
store i32 8, i32* %1
br label %218
30: ; preds = %24
store i32 14, i32* %1
br label %218
31: ; preds = %24
br label %122
32: ; preds = %22
%33 = load i32, i32* %4
switch i32 %33, label %39 [
i32 6, label %34
i32 7, label %35
i32 10, label %36
i32 11, label %36
i32 14, label %36
i32 15, label %36
i32 12, label %37
i32 13, label %38
]
34: ; preds = %32
store i32 14, i32* %1
br label %218
35: ; preds = %32
store i32 15, i32* %1
br label %218
36: ; preds = %32, %32, %32, %32
store i32 17, i32* %1
br label %218
37: ; preds = %32
store i32 18, i32* %1
br label %218
38: ; preds = %32
store i32 16, i32* %1
br label %218
39: ; preds = %32
br label %122
40: ; preds = %22
%41 = load i32, i32* %4
switch i32 %41, label %55 [
i32 5, label %42
i32 10, label %43
i32 12, label %48
i32 13, label %49
i32 14, label %54
i32 15, label %54
]
42: ; preds = %40
store i32 17, i32* %1
br label %218
43: ; preds = %40
%44 = call i32 (...) @support_avx()
%45 = icmp ne i32 %44, 0
br i1 %45, label %46, label %47
46: ; preds = %43
store i32 20, i32* %1
br label %218
47: ; preds = %43
store i32 17, i32* %1
br label %218
48: ; preds = %40
store i32 17, i32* %1
br label %218
49: ; preds = %40
%50 = call i32 (...) @support_avx()
%51 = icmp ne i32 %50, 0
br i1 %51, label %52, label %53
52: ; preds = %49
store i32 20, i32* %1
br label %218
53: ; preds = %49
store i32 17, i32* %1
br label %218
54: ; preds = %40, %40
store i32 17, i32* %1
br label %218
55: ; preds = %40
br label %122
56: ; preds = %22
%57 = load i32, i32* %4
switch i32 %57, label %74 [
i32 7, label %58
i32 10, label %59
i32 14, label %59
i32 12, label %64
i32 15, label %64
i32 13, label %69
]
58: ; preds = %56
store i32 18, i32* %1
br label %218
59: ; preds = %56, %56
%60 = call i32 (...) @support_avx()
%61 = icmp ne i32 %60, 0
br i1 %61, label %62, label %63
62: ; preds = %59
store i32 20, i32* %1
br label %218
63: ; preds = %59
store i32 17, i32* %1
br label %218
64: ; preds = %56, %56
%65 = call i32 (...) @support_avx()
%66 = icmp ne i32 %65, 0
br i1 %66, label %67, label %68
67: ; preds = %64
store i32 24, i32* %1
br label %218
68: ; preds = %64
store i32 17, i32* %1
br label %218
69: ; preds = %56
%70 = call i32 (...) @support_avx()
%71 = icmp ne i32 %70, 0
br i1 %71, label %72, label %73
72: ; preds = %69
store i32 24, i32* %1
br label %218
73: ; preds = %69
store i32 17, i32* %1
br label %218
74: ; preds = %56
br label %122
75: ; preds = %22
%76 = load i32, i32* %4
switch i32 %76, label %93 [
i32 5, label %77
i32 6, label %77
i32 7, label %82
i32 15, label %82
i32 14, label %87
i32 12, label %92
i32 13, label %92
]
77: ; preds = %75, %75
%78 = call i32 (...) @support_avx()
%79 = icmp ne i32 %78, 0
br i1 %79, label %80, label %81
80: ; preds = %77
store i32 24, i32* %1
br label %218
81: ; preds = %77
store i32 17, i32* %1
br label %218
82: ; preds = %75, %75
%83 = call i32 (...) @support_avx()
%84 = icmp ne i32 %83, 0
br i1 %84, label %85, label %86
85: ; preds = %82
store i32 24, i32* %1
br label %218
86: ; preds = %82
store i32 17, i32* %1
br label %218
87: ; preds = %75
%88 = call i32 (...) @support_avx()
%89 = icmp ne i32 %88, 0
br i1 %89, label %90, label %91
90: ; preds = %87
store i32 24, i32* %1
br label %218
91: ; preds = %87
store i32 17, i32* %1
br label %218
92: ; preds = %75, %75
store i32 17, i32* %1
br label %218
93: ; preds = %75
br label %122
94: ; preds = %22
%95 = load i32, i32* %4
switch i32 %95, label %112 [
i32 6, label %96
i32 5, label %101
i32 14, label %101
i32 7, label %106
i32 12, label %111
]
96: ; preds = %94
%97 = call i32 (...) @support_avx()
%98 = icmp ne i32 %97, 0
br i1 %98, label %99, label %100
99: ; preds = %96
store i32 24, i32* %1
br label %218
100: ; preds = %96
store i32 17, i32* %1
br label %218
101: ; preds = %94, %94
%102 = call i32 (...) @support_avx()
%103 = icmp ne i32 %102, 0
br i1 %103, label %104, label %105
104: ; preds = %101
store i32 24, i32* %1
br label %218
105: ; preds = %101
store i32 17, i32* %1
br label %218
106: ; preds = %94
%107 = call i32 (...) @support_avx()
%108 = icmp ne i32 %107, 0
br i1 %108, label %109, label %110
109: ; preds = %106
store i32 24, i32* %1
br label %218
110: ; preds = %106
store i32 17, i32* %1
br label %218
111: ; preds = %94
store i32 17, i32* %1
br label %218
112: ; preds = %94
br label %122
113: ; preds = %22, %22
%114 = load i32, i32* %4
%115 = icmp eq i32 %114, 14
br i1 %115, label %116, label %121
116: ; preds = %113
%117 = call i32 (...) @support_avx()
%118 = icmp ne i32 %117, 0
br i1 %118, label %119, label %120
119: ; preds = %116
store i32 24, i32* %1
br label %218
120: ; preds = %116
store i32 17, i32* %1
br label %218
121: ; preds = %113
br label %122
122: ; preds = %121, %22, %112, %93, %74, %55, %39, %31
br label %128
123: ; preds = %18
%124 = load i32, i32* %4
%125 = icmp sle i32 %124, 2
br i1 %125, label %126, label %127
126: ; preds = %123
store i32 6, i32* %1
br label %218
127: ; preds = %123
store i32 7, i32* %1
br label %218
128: ; preds = %18, %122
br label %129
129: ; preds = %128, %10
%130 = load i32, i32* %6
%131 = icmp eq i32 %130, 3
br i1 %131, label %132, label %210
132: ; preds = %129
%133 = load i32, i32* %2
%134 = icmp sle i32 %133, 5
br i1 %134, label %135, label %136
135: ; preds = %132
store i32 1, i32* %1
br label %218
136: ; preds = %132
%137 = load i32, i32* %2
%138 = icmp sle i32 %137, 14
br i1 %138, label %139, label %140
139: ; preds = %136
store i32 9, i32* %1
br label %218
140: ; preds = %136
%141 = load i32, i32* %2
%142 = icmp eq i32 %141, 15
br i1 %142, label %143, label %209
143: ; preds = %140
%144 = load i32, i32* %3
%145 = icmp eq i32 %144, 0
br i1 %145, label %149, label %146
146: ; preds = %143
%147 = load i32, i32* %3
%148 = icmp eq i32 %147, 2
br i1 %148, label %149, label %150
149: ; preds = %146, %143
store i32 10, i32* %1
br label %218
150: ; preds = %146
%151 = load i32, i32* %3
%152 = icmp eq i32 %151, 5
br i1 %152, label %153, label %154
153: ; preds = %150
store i32 21, i32* %1
br label %218
154: ; preds = %150
%155 = load i32, i32* %3
%156 = icmp eq i32 %155, 6
br i1 %156, label %157, label %193
157: ; preds = %154
%158 = load i32, i32* %4
switch i32 %158, label %192 [
i32 1, label %159
i32 2, label %164
i32 3, label %164
i32 5, label %169
i32 0, label %174
i32 8, label %174
]
159: ; preds = %157
%160 = call i32 (...) @support_avx()
%161 = icmp ne i32 %160, 0
br i1 %161, label %162, label %163
162: ; preds = %159
store i32 22, i32* %1
br label %218
163: ; preds = %159
store i32 11, i32* %1
br label %218
164: ; preds = %157, %157
%165 = call i32 (...) @support_avx()
%166 = icmp ne i32 %165, 0
br i1 %166, label %167, label %168
167: ; preds = %164
store i32 23, i32* %1
br label %218
168: ; preds = %164
store i32 11, i32* %1
br label %218
169: ; preds = %157
%170 = call i32 (...) @support_avx()
%171 = icmp ne i32 %170, 0
br i1 %171, label %172, label %173
172: ; preds = %169
store i32 26, i32* %1
br label %218
173: ; preds = %169
store i32 11, i32* %1
br label %218
174: ; preds = %157, %157
%175 = load i32, i32* %5
switch i32 %175, label %191 [
i32 1, label %176
i32 3, label %181
i32 6, label %186
]
176: ; preds = %174
%177 = call i32 (...) @support_avx()
%178 = icmp ne i32 %177, 0
br i1 %178, label %179, label %180
179: ; preds = %176
store i32 23, i32* %1
br label %218
180: ; preds = %176
store i32 11, i32* %1
br label %218
181: ; preds = %174
%182 = call i32 (...) @support_avx()
%183 = icmp ne i32 %182, 0
br i1 %183, label %184, label %185
184: ; preds = %181
store i32 25, i32* %1
br label %218
185: ; preds = %181
store i32 11, i32* %1
br label %218
186: ; preds = %174
%187 = call i32 (...) @support_avx()
%188 = icmp ne i32 %187, 0
br i1 %188, label %189, label %190
189: ; preds = %186
store i32 26, i32* %1
br label %218
190: ; preds = %186
store i32 11, i32* %1
br label %218
191: ; preds = %174
br label %192
192: ; preds = %157, %191
br label %206
193: ; preds = %154
%194 = load i32, i32* %3
%195 = icmp eq i32 %194, 8
br i1 %195, label %196, label %204
196: ; preds = %193
%197 = load i32, i32* %4
switch i32 %197, label %203 [
i32 1, label %198
]
198: ; preds = %196
%199 = call i32 (...) @support_avx()
%200 = icmp ne i32 %199, 0
br i1 %200, label %201, label %202
201: ; preds = %198
store i32 27, i32* %1
br label %218
202: ; preds = %198
store i32 11, i32* %1
br label %218
203: ; preds = %196
br label %205
204: ; preds = %193
store i32 11, i32* %1
br label %218
205: ; preds = %203
br label %206
206: ; preds = %205, %192
br label %207
207: ; preds = %206
br label %208
208: ; preds = %207
br label %209
209: ; preds = %208, %140
br label %210
210: ; preds = %209, %129
%211 = load i32, i32* %6
%212 = icmp eq i32 %211, 6
br i1 %212, label %213, label %217
213: ; preds = %210
%214 = load i32, i32* %2
switch i32 %214, label %216 [
i32 6, label %215
]
215: ; preds = %213
store i32 19, i32* %1
br label %218
216: ; preds = %213
store i32 12, i32* %1
br label %218
217: ; preds = %210
store i32 0, i32* %1
br label %218
218: ; preds = %217, %216, %215, %204, %202, %201, %190, %189, %185, %184, %180, %179, %173, %172, %168, %167, %163, %162, %153, %149, %139, %135, %127, %126, %120, %119, %111, %110, %109, %105, %104, %100, %99, %92, %91, %90, %86, %85, %81, %80, %73, %72, %68, %67, %63, %62, %58, %54, %53, %52, %48, %47, %46, %42, %38, %37, %36, %35, %34, %30, %29, %28, %27, %26, %21, %20, %9
%219 = load i32, i32* %1
ret i32 %219
}

LLVM IR (-O2):
@switch.table.get_coretype = [16 x i32] [i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 4, i32 5, i32 8, i32 5, i32 5, i32 0, i32 8, i32 8, i32 14]
@switch.table.get_coretype.1 = [10 x i32] [i32 14, i32 15, i32 0, i32 0, i32 17, i32 17, i32 18, i32 16, i32 17, i32 17]
define i32 @get_coretype() {
%1 = tail call i32 (...) @have_cpuid()
%2 = icmp eq i32 %1, 0
br i1 %2, label %129, label %3
3: ; preds = %0
%4 = tail call i32 @get_cputype(i32 4)
%5 = tail call i32 @get_cputype(i32 1)
%6 = tail call i32 @get_cputype(i32 5)
%7 = tail call i32 @get_cputype(i32 2)
%8 = tail call i32 (...) @get_vendor()
switch i32 %8, label %129 [
i32 1, label %9
i32 3, label %75
i32 6, label %118
]
9: ; preds = %3
switch i32 %4, label %74 [
i32 4, label %129
i32 5, label %10
i32 6, label %11
i32 15, label %71
]
10: ; preds = %9
br label %129
11: ; preds = %9
switch i32 %7, label %74 [
i32 0, label %12
i32 1, label %14
i32 2, label %17
i32 3, label %26
i32 4, label %39
i32 5, label %52
i32 9, label %65
i32 8, label %65
]
12: ; preds = %11
%13 = icmp ult i32 %6, 16
br i1 %13, label %121, label %74
14: ; preds = %11
%15 = add i32 %6, -6
%16 = icmp ult i32 %15, 10
br i1 %16, label %125, label %74
17: ; preds = %11
switch i32 %6, label %74 [
i32 5, label %129
i32 10, label %18
i32 12, label %129
i32 13, label %22
i32 14, label %129
i32 15, label %129
]
18: ; preds = %17
%19 = tail call i32 (...) @support_avx()
%20 = icmp eq i32 %19, 0
%21 = select i1 %20, i32 17, i32 20
br label %129
22: ; preds = %17
%23 = tail call i32 (...) @support_avx()
%24 = icmp eq i32 %23, 0
%25 = select i1 %24, i32 17, i32 20
br label %129
26: ; preds = %11
switch i32 %6, label %74 [
i32 7, label %129
i32 10, label %27
i32 14, label %27
i32 12, label %31
i32 15, label %31
i32 13, label %35
]
27: ; preds = %26, %26
%28 = tail call i32 (...) @support_avx()
%29 = icmp eq i32 %28, 0
%30 = select i1 %29, i32 17, i32 20
br label %129
31: ; preds = %26, %26
%32 = tail call i32 (...) @support_avx()
%33 = icmp eq i32 %32, 0
%34 = select i1 %33, i32 17, i32 24
br label %129
35: ; preds = %26
%36 = tail call i32 (...) @support_avx()
%37 = icmp eq i32 %36, 0
%38 = select i1 %37, i32 17, i32 24
br label %129
39: ; preds = %11
switch i32 %6, label %74 [
i32 5, label %40
i32 6, label %40
i32 7, label %44
i32 15, label %44
i32 14, label %48
i32 12, label %129
i32 13, label %129
]
40: ; preds = %39, %39
%41 = tail call i32 (...) @support_avx()
%42 = icmp eq i32 %41, 0
%43 = select i1 %42, i32 17, i32 24
br label %129
44: ; preds = %39, %39
%45 = tail call i32 (...) @support_avx()
%46 = icmp eq i32 %45, 0
%47 = select i1 %46, i32 17, i32 24
br label %129
48: ; preds = %39
%49 = tail call i32 (...) @support_avx()
%50 = icmp eq i32 %49, 0
%51 = select i1 %50, i32 17, i32 24
br label %129
52: ; preds = %11
switch i32 %6, label %74 [
i32 6, label %53
i32 5, label %57
i32 14, label %57
i32 7, label %61
i32 12, label %129
]
53: ; preds = %52
%54 = tail call i32 (...) @support_avx()
%55 = icmp eq i32 %54, 0
%56 = select i1 %55, i32 17, i32 24
br label %129
57: ; preds = %52, %52
%58 = tail call i32 (...) @support_avx()
%59 = icmp eq i32 %58, 0
%60 = select i1 %59, i32 17, i32 24
br label %129
61: ; preds = %52
%62 = tail call i32 (...) @support_avx()
%63 = icmp eq i32 %62, 0
%64 = select i1 %63, i32 17, i32 24
br label %129
65: ; preds = %11, %11
%66 = icmp eq i32 %6, 14
br i1 %66, label %67, label %74
67: ; preds = %65
%68 = tail call i32 (...) @support_avx()
%69 = icmp eq i32 %68, 0
%70 = select i1 %69, i32 17, i32 24
br label %129
71: ; preds = %9
%72 = icmp slt i32 %6, 3
%73 = select i1 %72, i32 6, i32 7
br label %129
74: ; preds = %14, %12, %9, %65, %52, %39, %26, %17, %11
br label %129
75: ; preds = %3
%76 = icmp slt i32 %4, 6
br i1 %76, label %129, label %77
77: ; preds = %75
%78 = icmp ult i32 %4, 15
br i1 %78, label %129, label %79
79: ; preds = %77
%80 = icmp eq i32 %4, 15
br i1 %80, label %81, label %129
81: ; preds = %79
%82 = and i32 %5, -3
%83 = icmp eq i32 %82, 0
br i1 %83, label %129, label %84
84: ; preds = %81
switch i32 %5, label %117 [
i32 5, label %129
i32 6, label %85
i32 8, label %111
]
85: ; preds = %84
switch i32 %6, label %129 [
i32 1, label %86
i32 2, label %90
i32 3, label %90
i32 5, label %94
i32 0, label %98
i32 8, label %98
]
86: ; preds = %85
%87 = tail call i32 (...) @support_avx()
%88 = icmp eq i32 %87, 0
%89 = select i1 %88, i32 11, i32 22
br label %129
90: ; preds = %85, %85
%91 = tail call i32 (...) @support_avx()
%92 = icmp eq i32 %91, 0
%93 = select i1 %92, i32 11, i32 23
br label %129
94: ; preds = %85
%95 = tail call i32 (...) @support_avx()
%96 = icmp eq i32 %95, 0
%97 = select i1 %96, i32 11, i32 26
br label %129
98: ; preds = %85, %85
switch i32 %7, label %129 [
i32 1, label %99
i32 3, label %103
i32 6, label %107
]
99: ; preds = %98
%100 = tail call i32 (...) @support_avx()
%101 = icmp eq i32 %100, 0
%102 = select i1 %101, i32 11, i32 23
br label %129
103: ; preds = %98
%104 = tail call i32 (...) @support_avx()
%105 = icmp eq i32 %104, 0
%106 = select i1 %105, i32 11, i32 25
br label %129
107: ; preds = %98
%108 = tail call i32 (...) @support_avx()
%109 = icmp eq i32 %108, 0
%110 = select i1 %109, i32 11, i32 26
br label %129
111: ; preds = %84
%112 = icmp eq i32 %6, 1
br i1 %112, label %113, label %129
113: ; preds = %111
%114 = tail call i32 (...) @support_avx()
%115 = icmp eq i32 %114, 0
%116 = select i1 %115, i32 11, i32 27
br label %129
117: ; preds = %84
br label %129
118: ; preds = %3
%119 = icmp eq i32 %4, 6
%120 = select i1 %119, i32 19, i32 12
br label %129
121: ; preds = %12
%122 = sext i32 %6 to i64
%123 = getelementptr inbounds [16 x i32], [16 x i32]* @switch.table.get_coretype, i64 0, i64 %122
%124 = load i32, i32* %123
br label %129
125: ; preds = %14
%126 = sext i32 %15 to i64
%127 = getelementptr inbounds [10 x i32], [10 x i32]* @switch.table.get_coretype.1, i64 0, i64 %126
%128 = load i32, i32* %127
br label %129
129: ; preds = %125, %121, %98, %85, %111, %79, %74, %3, %118, %113, %84, %107, %103, %99, %94, %90, %86, %81, %77, %75, %71, %67, %52, %61, %57, %53, %39, %39, %48, %44, %40, %35, %31, %27, %26, %17, %17, %22, %17, %18, %17, %9, %0, %117, %10
%130 = phi i32 [ 11, %117 ], [ 2, %10 ], [ 1, %0 ], [ 1, %9 ], [ 17, %17 ], [ %21, %18 ], [ 17, %17 ], [ %25, %22 ], [ 17, %17 ], [ 17, %17 ], [ 18, %26 ], [ %30, %27 ], [ %34, %31 ], [ %38, %35 ], [ %43, %40 ], [ %47, %44 ], [ %51, %48 ], [ 17, %39 ], [ 17, %39 ], [ %56, %53 ], [ %60, %57 ], [ %64, %61 ], [ 17, %52 ], [ %70, %67 ], [ %73, %71 ], [ 1, %75 ], [ 9, %77 ], [ 10, %81 ], [ 21, %84 ], [ %89, %86 ], [ %93, %90 ], [ %97, %94 ], [ %102, %99 ], [ %106, %103 ], [ %110, %107 ], [ %116, %113 ], [ %120, %118 ], [ 0, %3 ], [ 0, %74 ], [ 0, %79 ], [ 0, %111 ], [ 0, %85 ], [ 0, %98 ], [ %124, %121 ], [ %128, %125 ]
ret i32 %130
}