void btor_SC_GATE_S_const(char *S, char R, char D, char CI, char Q) {
  char D_and_CI, D_or_CI;
  char T2_or_R, T2_and_R;
  char T1, T2;
  D_or_CI = (((D) == '1' || (CI) == '1')
                 ? '1'
                 : (((D) == 'x' || (CI) == 'x') ? 'x' : (D) | (CI)));
  D_and_CI = (((D) == '0' || (CI) == '0')
                  ? '0'
                  : (((D) == 'x' || (CI) == 'x') ? 'x' : (D) & (CI)));
  T1 =
      (((D_or_CI) == '0' || (((D_and_CI) == 'x' ? 'x' : (D_and_CI) ^ 1)) == '0')
           ? '0'
           : (((D_or_CI) == 'x' ||
               (((D_and_CI) == 'x' ? 'x' : (D_and_CI) ^ 1)) == 'x')
                  ? 'x'
                  : (D_or_CI) & (((D_and_CI) == 'x' ? 'x' : (D_and_CI) ^ 1))));
  T2 = (((T1) == '0' || (Q) == '0')
            ? '0'
            : (((T1) == 'x' || (Q) == 'x') ? 'x' : (T1) & (Q)));
  T2_or_R = (((T2) == '1' || (R) == '1')
                 ? '1'
                 : (((T2) == 'x' || (R) == 'x') ? 'x' : (T2) | (R)));
  T2_and_R = (((T2) == '0' || (R) == '0')
                  ? '0'
                  : (((T2) == 'x' || (R) == 'x') ? 'x' : (T2) & (R)));
  *S =
      (((T2_or_R) == '0' || (((T2_and_R) == 'x' ? 'x' : (T2_and_R) ^ 1)) == '0')
           ? '0'
           : (((T2_or_R) == 'x' ||
               (((T2_and_R) == 'x' ? 'x' : (T2_and_R) ^ 1)) == 'x')
                  ? 'x'
                  : (T2_or_R) & (((T2_and_R) == 'x' ? 'x' : (T2_and_R) ^ 1))));
}


x86 assembly (clang, -O0):
<btor_SC_GATE_S_const>:
push   %rbp
mov    %rsp,%rbp
mov    %r8b,%al
mov    %rdi,-0x8(%rbp)
mov    %sil,-0x9(%rbp)
mov    %dl,-0xa(%rbp)
mov    %cl,-0xb(%rbp)
mov    %al,-0xc(%rbp)
movsbl -0xa(%rbp),%eax
cmp    $0x31,%eax
je     1132 <btor_SC_GATE_S_const+0x32>
movsbl -0xb(%rbp),%eax
cmp    $0x31,%eax
jne    113f <btor_SC_GATE_S_const+0x3f>
mov    $0x31,%eax
mov    %eax,-0x18(%rbp)
jmp    1179 <btor_SC_GATE_S_const+0x79>
movsbl -0xa(%rbp),%eax
cmp    $0x78,%eax
je     1159 <btor_SC_GATE_S_const+0x59>
movsbl -0xb(%rbp),%eax
cmp    $0x78,%eax
jne    1166 <btor_SC_GATE_S_const+0x66>
mov    $0x78,%eax
mov    %eax,-0x1c(%rbp)
jmp    1173 <btor_SC_GATE_S_const+0x73>
movsbl -0xa(%rbp),%eax
movsbl -0xb(%rbp),%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
mov    %al,-0xe(%rbp)
movsbl -0xa(%rbp),%eax
cmp    $0x30,%eax
je     1199 <btor_SC_GATE_S_const+0x99>
movsbl -0xb(%rbp),%eax
cmp    $0x30,%eax
jne    11a6 <btor_SC_GATE_S_const+0xa6>
mov    $0x30,%eax
mov    %eax,-0x20(%rbp)
jmp    11e0 <btor_SC_GATE_S_const+0xe0>
movsbl -0xa(%rbp),%eax
cmp    $0x78,%eax
je     11c0 <btor_SC_GATE_S_const+0xc0>
movsbl -0xb(%rbp),%eax
cmp    $0x78,%eax
jne    11cd <btor_SC_GATE_S_const+0xcd>
mov    $0x78,%eax
mov    %eax,-0x24(%rbp)
jmp    11da <btor_SC_GATE_S_const+0xda>
movsbl -0xa(%rbp),%eax
movsbl -0xb(%rbp),%ecx
and    %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    %al,-0xd(%rbp)
movsbl -0xe(%rbp),%eax
cmp    $0x30,%eax
je     1223 <btor_SC_GATE_S_const+0x123>
movsbl -0xd(%rbp),%eax
cmp    $0x78,%eax
jne    120d <btor_SC_GATE_S_const+0x10d>
mov    $0x78,%eax
mov    %eax,-0x28(%rbp)
jmp    1217 <btor_SC_GATE_S_const+0x117>
movsbl -0xd(%rbp),%eax
xor    $0x1,%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
cmp    $0x30,%eax
jne    1230 <btor_SC_GATE_S_const+0x130>
mov    $0x30,%eax
mov    %eax,-0x2c(%rbp)
jmp    12b6 <btor_SC_GATE_S_const+0x1b6>
movsbl -0xe(%rbp),%eax
cmp    $0x78,%eax
je     126d <btor_SC_GATE_S_const+0x16d>
movsbl -0xd(%rbp),%eax
cmp    $0x78,%eax
jne    1257 <btor_SC_GATE_S_const+0x157>
mov    $0x78,%eax
mov    %eax,-0x30(%rbp)
jmp    1261 <btor_SC_GATE_S_const+0x161>
movsbl -0xd(%rbp),%eax
xor    $0x1,%eax
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%eax
cmp    $0x78,%eax
jne    127a <btor_SC_GATE_S_const+0x17a>
mov    $0x78,%eax
mov    %eax,-0x34(%rbp)
jmp    12b0 <btor_SC_GATE_S_const+0x1b0>
movsbl -0xe(%rbp),%eax
mov    %eax,-0x38(%rbp)
movsbl -0xd(%rbp),%eax
cmp    $0x78,%eax
jne    129b <btor_SC_GATE_S_const+0x19b>
mov    $0x78,%eax
mov    %eax,-0x3c(%rbp)
jmp    12a5 <btor_SC_GATE_S_const+0x1a5>
movsbl -0xd(%rbp),%eax
xor    $0x1,%eax
mov    %eax,-0x3c(%rbp)
mov    -0x38(%rbp),%eax
mov    -0x3c(%rbp),%ecx
and    %ecx,%eax
mov    %eax,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x2c(%rbp),%eax
mov    %al,-0x11(%rbp)
movsbl -0x11(%rbp),%eax
cmp    $0x30,%eax
je     12d6 <btor_SC_GATE_S_const+0x1d6>
movsbl -0xc(%rbp),%eax
cmp    $0x30,%eax
jne    12e3 <btor_SC_GATE_S_const+0x1e3>
mov    $0x30,%eax
mov    %eax,-0x40(%rbp)
jmp    131d <btor_SC_GATE_S_const+0x21d>
movsbl -0x11(%rbp),%eax
cmp    $0x78,%eax
je     12fd <btor_SC_GATE_S_const+0x1fd>
movsbl -0xc(%rbp),%eax
cmp    $0x78,%eax
jne    130a <btor_SC_GATE_S_const+0x20a>
mov    $0x78,%eax
mov    %eax,-0x44(%rbp)
jmp    1317 <btor_SC_GATE_S_const+0x217>
movsbl -0x11(%rbp),%eax
movsbl -0xc(%rbp),%ecx
and    %ecx,%eax
mov    %eax,-0x44(%rbp)
mov    -0x44(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x40(%rbp),%eax
mov    %al,-0x12(%rbp)
movsbl -0x12(%rbp),%eax
cmp    $0x31,%eax
je     133d <btor_SC_GATE_S_const+0x23d>
movsbl -0x9(%rbp),%eax
cmp    $0x31,%eax
jne    134a <btor_SC_GATE_S_const+0x24a>
mov    $0x31,%eax
mov    %eax,-0x48(%rbp)
jmp    1384 <btor_SC_GATE_S_const+0x284>
movsbl -0x12(%rbp),%eax
cmp    $0x78,%eax
je     1364 <btor_SC_GATE_S_const+0x264>
movsbl -0x9(%rbp),%eax
cmp    $0x78,%eax
jne    1371 <btor_SC_GATE_S_const+0x271>
mov    $0x78,%eax
mov    %eax,-0x4c(%rbp)
jmp    137e <btor_SC_GATE_S_const+0x27e>
movsbl -0x12(%rbp),%eax
movsbl -0x9(%rbp),%ecx
or     %ecx,%eax
mov    %eax,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0x48(%rbp),%eax
mov    %al,-0xf(%rbp)
movsbl -0x12(%rbp),%eax
cmp    $0x30,%eax
je     13a4 <btor_SC_GATE_S_const+0x2a4>
movsbl -0x9(%rbp),%eax
cmp    $0x30,%eax
jne    13b1 <btor_SC_GATE_S_const+0x2b1>
mov    $0x30,%eax
mov    %eax,-0x50(%rbp)
jmp    13eb <btor_SC_GATE_S_const+0x2eb>
movsbl -0x12(%rbp),%eax
cmp    $0x78,%eax
je     13cb <btor_SC_GATE_S_const+0x2cb>
movsbl -0x9(%rbp),%eax
cmp    $0x78,%eax
jne    13d8 <btor_SC_GATE_S_const+0x2d8>
mov    $0x78,%eax
mov    %eax,-0x54(%rbp)
jmp    13e5 <btor_SC_GATE_S_const+0x2e5>
movsbl -0x12(%rbp),%eax
movsbl -0x9(%rbp),%ecx
and    %ecx,%eax
mov    %eax,-0x54(%rbp)
mov    -0x54(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x50(%rbp),%eax
mov    %al,-0x10(%rbp)
movsbl -0xf(%rbp),%eax
cmp    $0x30,%eax
je     142e <btor_SC_GATE_S_const+0x32e>
movsbl -0x10(%rbp),%eax
cmp    $0x78,%eax
jne    1418 <btor_SC_GATE_S_const+0x318>
mov    $0x78,%eax
mov    %eax,-0x58(%rbp)
jmp    1422 <btor_SC_GATE_S_const+0x322>
movsbl -0x10(%rbp),%eax
xor    $0x1,%eax
mov    %eax,-0x58(%rbp)
mov    -0x58(%rbp),%eax
cmp    $0x30,%eax
jne    143b <btor_SC_GATE_S_const+0x33b>
mov    $0x30,%eax
mov    %eax,-0x5c(%rbp)
jmp    14c1 <btor_SC_GATE_S_const+0x3c1>
movsbl -0xf(%rbp),%eax
cmp    $0x78,%eax
je     1478 <btor_SC_GATE_S_const+0x378>
movsbl -0x10(%rbp),%eax
cmp    $0x78,%eax
jne    1462 <btor_SC_GATE_S_const+0x362>
mov    $0x78,%eax
mov    %eax,-0x60(%rbp)
jmp    146c <btor_SC_GATE_S_const+0x36c>
movsbl -0x10(%rbp),%eax
xor    $0x1,%eax
mov    %eax,-0x60(%rbp)
mov    -0x60(%rbp),%eax
cmp    $0x78,%eax
jne    1485 <btor_SC_GATE_S_const+0x385>
mov    $0x78,%eax
mov    %eax,-0x64(%rbp)
jmp    14bb <btor_SC_GATE_S_const+0x3bb>
movsbl -0xf(%rbp),%eax
mov    %eax,-0x68(%rbp)
movsbl -0x10(%rbp),%eax
cmp    $0x78,%eax
jne    14a6 <btor_SC_GATE_S_const+0x3a6>
mov    $0x78,%eax
mov    %eax,-0x6c(%rbp)
jmp    14b0 <btor_SC_GATE_S_const+0x3b0>
movsbl -0x10(%rbp),%eax
xor    $0x1,%eax
mov    %eax,-0x6c(%rbp)
mov    -0x68(%rbp),%eax
mov    -0x6c(%rbp),%ecx
and    %ecx,%eax
mov    %eax,-0x64(%rbp)
mov    -0x64(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<btor_SC_GATE_S_const>:
mov    $0x31,%r10d
cmp    $0x31,%dl
je     112b <btor_SC_GATE_S_const+0x2b>
cmp    $0x31,%cl
je     112b <btor_SC_GATE_S_const+0x2b>
mov    %ecx,%eax
or     %dl,%al
cmp    $0x78,%cl
movsbl %al,%r10d
mov    $0x78,%eax
cmove  %eax,%r10d
cmp    $0x78,%dl
cmove  %eax,%r10d
mov    $0x30,%r9d
mov    $0x30,%eax
cmp    $0x30,%dl
je     115d <btor_SC_GATE_S_const+0x5d>
mov    $0x30,%eax
cmp    $0x30,%cl
je     115d <btor_SC_GATE_S_const+0x5d>
mov    %ecx,%eax
and    %dl,%al
cmp    $0x78,%cl
movsbl %al,%eax
mov    $0x78,%ecx
cmove  %ecx,%eax
cmp    $0x78,%dl
cmove  %ecx,%eax
cmp    $0x30,%r10d
je     11ad <btor_SC_GATE_S_const+0xad>
mov    %eax,%ecx
xor    $0x1,%ecx
cmp    $0x78,%eax
cmove  %eax,%ecx
cmp    $0x30,%ecx
je     11ad <btor_SC_GATE_S_const+0xad>
mov    %ecx,%eax
and    %r10d,%eax
cmp    $0x78,%ecx
cmove  %ecx,%eax
cmp    $0x78,%r10d
cmove  %r10d,%eax
cmp    $0x30,%r8b
je     11ad <btor_SC_GATE_S_const+0xad>
cmp    $0x30,%eax
je     11ad <btor_SC_GATE_S_const+0xad>
mov    %eax,%ecx
and    %r8b,%cl
cmp    $0x78,%eax
movsbl %cl,%ecx
cmove  %eax,%ecx
cmp    $0x78,%r8b
mov    $0x78,%r9d
cmovne %ecx,%r9d
mov    $0x31,%ecx
cmp    $0x31,%sil
je     11db <btor_SC_GATE_S_const+0xdb>
cmp    $0x31,%r9d
je     11db <btor_SC_GATE_S_const+0xdb>
mov    %r9d,%eax
or     %sil,%al
cmp    $0x78,%r9d
movsbl %al,%eax
cmove  %r9d,%eax
cmp    $0x78,%sil
mov    $0x78,%ecx
cmovne %eax,%ecx
mov    $0x30,%edx
cmp    $0x30,%sil
je     1209 <btor_SC_GATE_S_const+0x109>
cmp    $0x30,%r9d
je     1209 <btor_SC_GATE_S_const+0x109>
mov    %r9d,%eax
and    %sil,%al
cmp    $0x78,%r9d
movsbl %al,%eax
cmove  %r9d,%eax
cmp    $0x78,%sil
mov    $0x78,%edx
cmovne %eax,%edx
mov    $0x30,%al
cmp    $0x30,%ecx
je     1230 <btor_SC_GATE_S_const+0x130>
mov    %edx,%esi
xor    $0x1,%esi
cmp    $0x78,%edx
cmove  %edx,%esi
cmp    $0x30,%esi
je     1230 <btor_SC_GATE_S_const+0x130>
mov    $0x78,%al
cmp    $0x78,%ecx
je     1230 <btor_SC_GATE_S_const+0x130>
cmp    $0x78,%esi
je     1230 <btor_SC_GATE_S_const+0x130>
and    %ecx,%esi
mov    %esi,%eax
mov    %al,(%rdi)
ret

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

LLVM IR (-O2):
define void @btor_SC_GATE_S_const(i8* nocapture writeonly %0, i8 signext %1, i8 signext %2, i8 signext %3, i8 signext %4) {
%6 = icmp eq i8 %2, 49
%7 = icmp eq i8 %3, 49
%8 = or i1 %6, %7
br i1 %8, label %16, label %9
9: ; preds = %5
%10 = icmp eq i8 %2, 120
%11 = icmp eq i8 %3, 120
%12 = or i1 %10, %11
%13 = or i8 %3, %2
%14 = sext i8 %13 to i32
%15 = select i1 %12, i32 120, i32 %14
br label %16
16: ; preds = %5, %9
%17 = phi i32 [ %15, %9 ], [ 49, %5 ]
%18 = icmp eq i8 %2, 48
%19 = icmp eq i8 %3, 48
%20 = or i1 %18, %19
br i1 %20, label %28, label %21
21: ; preds = %16
%22 = icmp eq i8 %2, 120
%23 = icmp eq i8 %3, 120
%24 = or i1 %22, %23
%25 = and i8 %3, %2
%26 = sext i8 %25 to i32
%27 = select i1 %24, i32 120, i32 %26
br label %28
28: ; preds = %16, %21
%29 = phi i32 [ %27, %21 ], [ 48, %16 ]
%30 = icmp eq i32 %17, 48
br i1 %30, label %53, label %31
31: ; preds = %28
%32 = icmp eq i32 %29, 120
%33 = xor i32 %29, 1
%34 = select i1 %32, i32 120, i32 %33
%35 = icmp eq i32 %34, 48
br i1 %35, label %53, label %36
36: ; preds = %31
%37 = icmp eq i32 %17, 120
%38 = icmp eq i32 %34, 120
%39 = or i1 %37, %38
%40 = and i32 %34, %17
%41 = select i1 %39, i32 120, i32 %40
%42 = icmp eq i32 %41, 48
%43 = icmp eq i8 %4, 48
%44 = or i1 %43, %42
br i1 %44, label %53, label %45
45: ; preds = %36
%46 = icmp eq i32 %41, 120
%47 = icmp eq i8 %4, 120
%48 = or i1 %47, %46
%49 = trunc i32 %41 to i8
%50 = and i8 %49, %4
%51 = sext i8 %50 to i32
%52 = select i1 %48, i32 120, i32 %51
br label %53
53: ; preds = %28, %31, %36, %45
%54 = phi i32 [ %52, %45 ], [ 48, %36 ], [ 48, %31 ], [ 48, %28 ]
%55 = icmp eq i32 %54, 49
%56 = icmp eq i8 %1, 49
%57 = or i1 %56, %55
br i1 %57, label %66, label %58
58: ; preds = %53
%59 = icmp eq i32 %54, 120
%60 = icmp eq i8 %1, 120
%61 = or i1 %60, %59
%62 = trunc i32 %54 to i8
%63 = or i8 %62, %1
%64 = sext i8 %63 to i32
%65 = select i1 %61, i32 120, i32 %64
br label %66
66: ; preds = %53, %58
%67 = phi i32 [ %65, %58 ], [ 49, %53 ]
%68 = icmp eq i32 %54, 48
%69 = icmp eq i8 %1, 48
%70 = or i1 %69, %68
br i1 %70, label %79, label %71
71: ; preds = %66
%72 = icmp eq i32 %54, 120
%73 = icmp eq i8 %1, 120
%74 = or i1 %73, %72
%75 = trunc i32 %54 to i8
%76 = and i8 %75, %1
%77 = sext i8 %76 to i32
%78 = select i1 %74, i32 120, i32 %77
br label %79
79: ; preds = %66, %71
%80 = phi i32 [ %78, %71 ], [ 48, %66 ]
%81 = icmp eq i32 %67, 48
br i1 %81, label %94, label %82
82: ; preds = %79
%83 = icmp eq i32 %80, 120
%84 = xor i32 %80, 1
%85 = select i1 %83, i32 120, i32 %84
%86 = icmp eq i32 %85, 48
br i1 %86, label %94, label %87
87: ; preds = %82
%88 = icmp eq i32 %67, 120
%89 = icmp eq i32 %85, 120
%90 = select i1 %88, i1 true, i1 %89
br i1 %90, label %94, label %91
91: ; preds = %87
%92 = and i32 %85, %67
%93 = trunc i32 %92 to i8
br label %94
94: ; preds = %91, %87, %79, %82
%95 = phi i8 [ 48, %82 ], [ 48, %79 ], [ %93, %91 ], [ 120, %87 ]
store i8 %95, i8* %0
ret void
}