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

/* Variables and functions */
int intel_gen(int);
bool is_hsw_plus(uint32_t devid, uint32_t pch) {
  return (((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)) ||
         intel_gen(devid) >= 8;
}


x86 assembly (clang, -O0):
<is_hsw_plus>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    $0x1,%al
cmpl   $0x402,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x406,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x40a,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x40b,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x40e,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc02,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc06,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc0a,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc0b,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc0e,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa02,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa06,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa0a,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa0b,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa0e,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd02,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd06,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd0a,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd0b,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd0e,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x412,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x416,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x41a,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x41b,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x41e,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc12,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc16,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc1a,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc1b,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc1e,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa12,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa16,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa1a,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa1b,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa1e,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd12,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd16,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd1a,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd1b,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd1e,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x422,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x426,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x42a,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x42b,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0x42e,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc22,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc26,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc2a,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc2b,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xc2e,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa22,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa26,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa2a,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa2b,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xa2e,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd22,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd26,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd2a,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd2b,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    $0x1,%al
cmpl   $0xd2e,-0x4(%rbp)
mov    %al,-0x9(%rbp)
je     1567 <is_hsw_plus+0x457>
mov    -0x4(%rbp),%edi
call   1030 <intel_gen@plt>
cmp    $0x8,%eax
setge  %al
mov    %al,-0x9(%rbp)
mov    -0x9(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<is_hsw_plus>:
mov    $0x1,%eax
cmp    $0xc01,%edi
jg     1130 <is_hsw_plus+0x20>
lea    -0x402(%rdi),%ecx
cmp    $0x2c,%ecx
jbe    116b <is_hsw_plus+0x5b>
lea    -0xa02(%rdi),%ecx
jmp    1141 <is_hsw_plus+0x31>
lea    -0xc02(%rdi),%ecx
cmp    $0x2c,%ecx
jbe    117d <is_hsw_plus+0x6d>
lea    -0xd02(%rdi),%ecx
cmp    $0x2c,%ecx
ja     1156 <is_hsw_plus+0x46>
movabs $0x131113111311,%rdx
bt     %rcx,%rdx
jb     118d <is_hsw_plus+0x7d>
push   %rax
call   1030 <intel_gen@plt>
mov    %eax,%ecx
xor    %eax,%eax
cmp    $0x8,%ecx
setge  %al
add    $0x8,%rsp
ret
movabs $0x131113111311,%rdx
bt     %rcx,%rdx
jb     118d <is_hsw_plus+0x7d>
jmp    1128 <is_hsw_plus+0x18>
movabs $0x131113111311,%rdx
bt     %rcx,%rdx
jae    113b <is_hsw_plus+0x2b>
ret

LLVM IR (-O0):
define i32 @is_hsw_plus(i32 %0, i32 %1) {
%3 = alloca i32
%4 = alloca i32
store i32 %0, i32* %3
store i32 %1, i32* %4
%5 = load i32, i32* %3
%6 = icmp eq i32 %5, 1026
br i1 %6, label %188, label %7
7: ; preds = %2
%8 = load i32, i32* %3
%9 = icmp eq i32 %8, 1030
br i1 %9, label %188, label %10
10: ; preds = %7
%11 = load i32, i32* %3
%12 = icmp eq i32 %11, 1034
br i1 %12, label %188, label %13
13: ; preds = %10
%14 = load i32, i32* %3
%15 = icmp eq i32 %14, 1035
br i1 %15, label %188, label %16
16: ; preds = %13
%17 = load i32, i32* %3
%18 = icmp eq i32 %17, 1038
br i1 %18, label %188, label %19
19: ; preds = %16
%20 = load i32, i32* %3
%21 = icmp eq i32 %20, 3074
br i1 %21, label %188, label %22
22: ; preds = %19
%23 = load i32, i32* %3
%24 = icmp eq i32 %23, 3078
br i1 %24, label %188, label %25
25: ; preds = %22
%26 = load i32, i32* %3
%27 = icmp eq i32 %26, 3082
br i1 %27, label %188, label %28
28: ; preds = %25
%29 = load i32, i32* %3
%30 = icmp eq i32 %29, 3083
br i1 %30, label %188, label %31
31: ; preds = %28
%32 = load i32, i32* %3
%33 = icmp eq i32 %32, 3086
br i1 %33, label %188, label %34
34: ; preds = %31
%35 = load i32, i32* %3
%36 = icmp eq i32 %35, 2562
br i1 %36, label %188, label %37
37: ; preds = %34
%38 = load i32, i32* %3
%39 = icmp eq i32 %38, 2566
br i1 %39, label %188, label %40
40: ; preds = %37
%41 = load i32, i32* %3
%42 = icmp eq i32 %41, 2570
br i1 %42, label %188, label %43
43: ; preds = %40
%44 = load i32, i32* %3
%45 = icmp eq i32 %44, 2571
br i1 %45, label %188, label %46
46: ; preds = %43
%47 = load i32, i32* %3
%48 = icmp eq i32 %47, 2574
br i1 %48, label %188, label %49
49: ; preds = %46
%50 = load i32, i32* %3
%51 = icmp eq i32 %50, 3330
br i1 %51, label %188, label %52
52: ; preds = %49
%53 = load i32, i32* %3
%54 = icmp eq i32 %53, 3334
br i1 %54, label %188, label %55
55: ; preds = %52
%56 = load i32, i32* %3
%57 = icmp eq i32 %56, 3338
br i1 %57, label %188, label %58
58: ; preds = %55
%59 = load i32, i32* %3
%60 = icmp eq i32 %59, 3339
br i1 %60, label %188, label %61
61: ; preds = %58
%62 = load i32, i32* %3
%63 = icmp eq i32 %62, 3342
br i1 %63, label %188, label %64
64: ; preds = %61
%65 = load i32, i32* %3
%66 = icmp eq i32 %65, 1042
br i1 %66, label %188, label %67
67: ; preds = %64
%68 = load i32, i32* %3
%69 = icmp eq i32 %68, 1046
br i1 %69, label %188, label %70
70: ; preds = %67
%71 = load i32, i32* %3
%72 = icmp eq i32 %71, 1050
br i1 %72, label %188, label %73
73: ; preds = %70
%74 = load i32, i32* %3
%75 = icmp eq i32 %74, 1051
br i1 %75, label %188, label %76
76: ; preds = %73
%77 = load i32, i32* %3
%78 = icmp eq i32 %77, 1054
br i1 %78, label %188, label %79
79: ; preds = %76
%80 = load i32, i32* %3
%81 = icmp eq i32 %80, 3090
br i1 %81, label %188, label %82
82: ; preds = %79
%83 = load i32, i32* %3
%84 = icmp eq i32 %83, 3094
br i1 %84, label %188, label %85
85: ; preds = %82
%86 = load i32, i32* %3
%87 = icmp eq i32 %86, 3098
br i1 %87, label %188, label %88
88: ; preds = %85
%89 = load i32, i32* %3
%90 = icmp eq i32 %89, 3099
br i1 %90, label %188, label %91
91: ; preds = %88
%92 = load i32, i32* %3
%93 = icmp eq i32 %92, 3102
br i1 %93, label %188, label %94
94: ; preds = %91
%95 = load i32, i32* %3
%96 = icmp eq i32 %95, 2578
br i1 %96, label %188, label %97
97: ; preds = %94
%98 = load i32, i32* %3
%99 = icmp eq i32 %98, 2582
br i1 %99, label %188, label %100
100: ; preds = %97
%101 = load i32, i32* %3
%102 = icmp eq i32 %101, 2586
br i1 %102, label %188, label %103
103: ; preds = %100
%104 = load i32, i32* %3
%105 = icmp eq i32 %104, 2587
br i1 %105, label %188, label %106
106: ; preds = %103
%107 = load i32, i32* %3
%108 = icmp eq i32 %107, 2590
br i1 %108, label %188, label %109
109: ; preds = %106
%110 = load i32, i32* %3
%111 = icmp eq i32 %110, 3346
br i1 %111, label %188, label %112
112: ; preds = %109
%113 = load i32, i32* %3
%114 = icmp eq i32 %113, 3350
br i1 %114, label %188, label %115
115: ; preds = %112
%116 = load i32, i32* %3
%117 = icmp eq i32 %116, 3354
br i1 %117, label %188, label %118
118: ; preds = %115
%119 = load i32, i32* %3
%120 = icmp eq i32 %119, 3355
br i1 %120, label %188, label %121
121: ; preds = %118
%122 = load i32, i32* %3
%123 = icmp eq i32 %122, 3358
br i1 %123, label %188, label %124
124: ; preds = %121
%125 = load i32, i32* %3
%126 = icmp eq i32 %125, 1058
br i1 %126, label %188, label %127
127: ; preds = %124
%128 = load i32, i32* %3
%129 = icmp eq i32 %128, 1062
br i1 %129, label %188, label %130
130: ; preds = %127
%131 = load i32, i32* %3
%132 = icmp eq i32 %131, 1066
br i1 %132, label %188, label %133
133: ; preds = %130
%134 = load i32, i32* %3
%135 = icmp eq i32 %134, 1067
br i1 %135, label %188, label %136
136: ; preds = %133
%137 = load i32, i32* %3
%138 = icmp eq i32 %137, 1070
br i1 %138, label %188, label %139
139: ; preds = %136
%140 = load i32, i32* %3
%141 = icmp eq i32 %140, 3106
br i1 %141, label %188, label %142
142: ; preds = %139
%143 = load i32, i32* %3
%144 = icmp eq i32 %143, 3110
br i1 %144, label %188, label %145
145: ; preds = %142
%146 = load i32, i32* %3
%147 = icmp eq i32 %146, 3114
br i1 %147, label %188, label %148
148: ; preds = %145
%149 = load i32, i32* %3
%150 = icmp eq i32 %149, 3115
br i1 %150, label %188, label %151
151: ; preds = %148
%152 = load i32, i32* %3
%153 = icmp eq i32 %152, 3118
br i1 %153, label %188, label %154
154: ; preds = %151
%155 = load i32, i32* %3
%156 = icmp eq i32 %155, 2594
br i1 %156, label %188, label %157
157: ; preds = %154
%158 = load i32, i32* %3
%159 = icmp eq i32 %158, 2598
br i1 %159, label %188, label %160
160: ; preds = %157
%161 = load i32, i32* %3
%162 = icmp eq i32 %161, 2602
br i1 %162, label %188, label %163
163: ; preds = %160
%164 = load i32, i32* %3
%165 = icmp eq i32 %164, 2603
br i1 %165, label %188, label %166
166: ; preds = %163
%167 = load i32, i32* %3
%168 = icmp eq i32 %167, 2606
br i1 %168, label %188, label %169
169: ; preds = %166
%170 = load i32, i32* %3
%171 = icmp eq i32 %170, 3362
br i1 %171, label %188, label %172
172: ; preds = %169
%173 = load i32, i32* %3
%174 = icmp eq i32 %173, 3366
br i1 %174, label %188, label %175
175: ; preds = %172
%176 = load i32, i32* %3
%177 = icmp eq i32 %176, 3370
br i1 %177, label %188, label %178
178: ; preds = %175
%179 = load i32, i32* %3
%180 = icmp eq i32 %179, 3371
br i1 %180, label %188, label %181
181: ; preds = %178
%182 = load i32, i32* %3
%183 = icmp eq i32 %182, 3374
br i1 %183, label %188, label %184
184: ; preds = %181
%185 = load i32, i32* %3
%186 = call i32 @intel_gen(i32 %185)
%187 = icmp sge i32 %186, 8
br label %188
188: ; preds = %184, %181, %178, %175, %172, %169, %166, %163, %160, %157, %154, %151, %148, %145, %142, %139, %136, %133, %130, %127, %124, %121, %118, %115, %112, %109, %106, %103, %100, %97, %94, %91, %88, %85, %82, %79, %76, %73, %70, %67, %64, %61, %58, %55, %52, %49, %46, %43, %40, %37, %34, %31, %28, %25, %22, %19, %16, %13, %10, %7, %2
%189 = phi i1 [ true, %181 ], [ true, %178 ], [ true, %175 ], [ true, %172 ], [ true, %169 ], [ true, %166 ], [ true, %163 ], [ true, %160 ], [ true, %157 ], [ true, %154 ], [ true, %151 ], [ true, %148 ], [ true, %145 ], [ true, %142 ], [ true, %139 ], [ true, %136 ], [ true, %133 ], [ true, %130 ], [ true, %127 ], [ true, %124 ], [ true, %121 ], [ true, %118 ], [ true, %115 ], [ true, %112 ], [ true, %109 ], [ true, %106 ], [ true, %103 ], [ true, %100 ], [ true, %97 ], [ true, %94 ], [ true, %91 ], [ true, %88 ], [ true, %85 ], [ true, %82 ], [ true, %79 ], [ true, %76 ], [ true, %73 ], [ true, %70 ], [ true, %67 ], [ true, %64 ], [ true, %61 ], [ true, %58 ], [ true, %55 ], [ true, %52 ], [ true, %49 ], [ true, %46 ], [ true, %43 ], [ true, %40 ], [ true, %37 ], [ true, %34 ], [ true, %31 ], [ true, %28 ], [ true, %25 ], [ true, %22 ], [ true, %19 ], [ true, %16 ], [ true, %13 ], [ true, %10 ], [ true, %7 ], [ true, %2 ], [ %187, %184 ]
%190 = zext i1 %189 to i32
ret i32 %190
}

LLVM IR (-O2):
define i32 @is_hsw_plus(i32 %0, i32 %1) {
switch i32 %0, label %3 [
i32 3374, label %7
i32 3371, label %7
i32 3370, label %7
i32 3366, label %7
i32 3362, label %7
i32 3358, label %7
i32 3355, label %7
i32 3354, label %7
i32 3350, label %7
i32 3346, label %7
i32 3342, label %7
i32 3339, label %7
i32 3338, label %7
i32 3334, label %7
i32 3330, label %7
i32 3118, label %7
i32 3115, label %7
i32 3114, label %7
i32 3110, label %7
i32 3106, label %7
i32 3102, label %7
i32 3099, label %7
i32 3098, label %7
i32 3094, label %7
i32 3090, label %7
i32 3086, label %7
i32 3083, label %7
i32 3082, label %7
i32 3078, label %7
i32 3074, label %7
i32 2606, label %7
i32 2603, label %7
i32 2602, label %7
i32 2598, label %7
i32 2594, label %7
i32 2590, label %7
i32 2587, label %7
i32 2586, label %7
i32 2582, label %7
i32 2578, label %7
i32 2574, label %7
i32 2571, label %7
i32 2570, label %7
i32 2566, label %7
i32 2562, label %7
i32 1070, label %7
i32 1067, label %7
i32 1066, label %7
i32 1062, label %7
i32 1058, label %7
i32 1054, label %7
i32 1051, label %7
i32 1050, label %7
i32 1046, label %7
i32 1042, label %7
i32 1038, label %7
i32 1035, label %7
i32 1034, label %7
i32 1030, label %7
i32 1026, label %7
]
3: ; preds = %2
%4 = tail call i32 @intel_gen(i32 %0)
%5 = icmp sgt i32 %4, 7
%6 = zext i1 %5 to i32
br label %7
7: ; preds = %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %3
%8 = phi i32 [ 1, %2 ], [ %6, %3 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ]
ret i32 %8
}