void fill_hs(char a, char b, double *h, double *s) {
  if (a == 'A') {
    if (b == 'A') {
      (*h) += 9100;
      (*s) += 24;
    } else if (b == 'C') {
      (*h) += 6500;
      (*s) += 17.3;
    } else if (b == 'G') {
      (*h) += 7800;
      (*s) += 20.8;
    } else if (b == 'T') {
      (*h) += 8600;
      (*s) += 23.9;
    }
  } else if (a == 'C') {
    if (b == 'A') {
      (*h) += 5800;
      (*s) += 12.9;
    } else if (b == 'C') {
      (*h) += 11000;
      (*s) += 26.6;
    } else if (b == 'G') {
      (*h) += 11900;
      (*s) += 27.8;
    } else if (b == 'T') {
      (*h) += 7800;
      (*s) += 20.8;
    }
  } else if (a == 'G') {
    if (b == 'A') {
      (*h) += 5600;
      (*s) += 13.5;
    } else if (b == 'C') {
      (*h) += 11100;
      (*s) += 26.7;
    } else if (b == 'G') {
      (*h) += 11000;
      (*s) += 26.6;
    } else if (b == 'T') {
      (*h) += 6500;
      (*s) += 17.3;
    }
  } else if (a == 'T') {
    if (b == 'A') {
      (*h) += 6000;
      (*s) += 16.9;
    } else if (b == 'C') {
      (*h) += 5600;
      (*s) += 13.5;
    } else if (b == 'G') {
      (*h) += 5800;
      (*s) += 12.9;
    } else if (b == 'T') {
      (*h) += 9100;
      (*s) += 24.0;
    }
  }
}


x86 assembly (clang, -O0):
<fill_hs>:
push   %rbp
mov    %rsp,%rbp
mov    %sil,%al
mov    %dil,%sil
mov    %sil,-0x1(%rbp)
mov    %al,-0x2(%rbp)
mov    %rdx,-0x10(%rbp)
mov    %rcx,-0x18(%rbp)
movsbl -0x1(%rbp),%eax
cmp    $0x41,%eax
jne    121d <fill_hs+0x11d>
movsbl -0x2(%rbp),%eax
cmp    $0x41,%eax
jne    1160 <fill_hs+0x60>
mov    -0x10(%rbp),%rax
movsd  0xec9(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xead(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    1218 <fill_hs+0x118>
movsbl -0x2(%rbp),%eax
cmp    $0x43,%eax
jne    119a <fill_hs+0x9a>
mov    -0x10(%rbp),%rax
movsd  0xecf(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xeb3(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    1213 <fill_hs+0x113>
movsbl -0x2(%rbp),%eax
cmp    $0x47,%eax
jne    11d4 <fill_hs+0xd4>
mov    -0x10(%rbp),%rax
movsd  0xec5(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xea9(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    120e <fill_hs+0x10e>
movsbl -0x2(%rbp),%eax
cmp    $0x54,%eax
jne    1209 <fill_hs+0x109>
mov    -0x10(%rbp),%rax
movsd  0xeab(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xe8f(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    120e <fill_hs+0x10e>
jmp    1213 <fill_hs+0x113>
jmp    1218 <fill_hs+0x118>
jmp    1538 <fill_hs+0x438>
movsbl -0x1(%rbp),%eax
cmp    $0x43,%eax
jne    1321 <fill_hs+0x221>
movsbl -0x2(%rbp),%eax
cmp    $0x41,%eax
jne    1264 <fill_hs+0x164>
mov    -0x10(%rbp),%rax
movsd  0xdd5(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xdb9(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    131c <fill_hs+0x21c>
movsbl -0x2(%rbp),%eax
cmp    $0x43,%eax
jne    129e <fill_hs+0x19e>
mov    -0x10(%rbp),%rax
movsd  0xddb(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xdbf(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    1317 <fill_hs+0x217>
movsbl -0x2(%rbp),%eax
cmp    $0x47,%eax
jne    12d8 <fill_hs+0x1d8>
mov    -0x10(%rbp),%rax
movsd  0xdd1(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xdb5(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    1312 <fill_hs+0x212>
movsbl -0x2(%rbp),%eax
cmp    $0x54,%eax
jne    130d <fill_hs+0x20d>
mov    -0x10(%rbp),%rax
movsd  0xd87(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xd6b(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    1312 <fill_hs+0x212>
jmp    1317 <fill_hs+0x217>
jmp    131c <fill_hs+0x21c>
jmp    1533 <fill_hs+0x433>
movsbl -0x1(%rbp),%eax
cmp    $0x47,%eax
jne    1425 <fill_hs+0x325>
movsbl -0x2(%rbp),%eax
cmp    $0x41,%eax
jne    1368 <fill_hs+0x268>
mov    -0x10(%rbp),%rax
movsd  0xce1(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xcc5(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    1420 <fill_hs+0x320>
movsbl -0x2(%rbp),%eax
cmp    $0x43,%eax
jne    13a2 <fill_hs+0x2a2>
mov    -0x10(%rbp),%rax
movsd  0xce7(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xccb(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    141b <fill_hs+0x31b>
movsbl -0x2(%rbp),%eax
cmp    $0x47,%eax
jne    13dc <fill_hs+0x2dc>
mov    -0x10(%rbp),%rax
movsd  0xc9d(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xc81(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    1416 <fill_hs+0x316>
movsbl -0x2(%rbp),%eax
cmp    $0x54,%eax
jne    1411 <fill_hs+0x311>
mov    -0x10(%rbp),%rax
movsd  0xc53(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xc37(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    1416 <fill_hs+0x316>
jmp    141b <fill_hs+0x31b>
jmp    1420 <fill_hs+0x320>
jmp    152e <fill_hs+0x42e>
movsbl -0x1(%rbp),%eax
cmp    $0x54,%eax
jne    1529 <fill_hs+0x429>
movsbl -0x2(%rbp),%eax
cmp    $0x41,%eax
jne    146c <fill_hs+0x36c>
mov    -0x10(%rbp),%rax
movsd  0xbed(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xbd1(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    1524 <fill_hs+0x424>
movsbl -0x2(%rbp),%eax
cmp    $0x43,%eax
jne    14a6 <fill_hs+0x3a6>
mov    -0x10(%rbp),%rax
movsd  0xba3(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xb87(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    151f <fill_hs+0x41f>
movsbl -0x2(%rbp),%eax
cmp    $0x47,%eax
jne    14e0 <fill_hs+0x3e0>
mov    -0x10(%rbp),%rax
movsd  0xb59(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xb3d(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    151a <fill_hs+0x41a>
movsbl -0x2(%rbp),%eax
cmp    $0x54,%eax
jne    1515 <fill_hs+0x415>
mov    -0x10(%rbp),%rax
movsd  0xb0f(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0xaf3(%rip),%xmm0
addsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
jmp    151a <fill_hs+0x41a>
jmp    151f <fill_hs+0x41f>
jmp    1524 <fill_hs+0x424>
jmp    1529 <fill_hs+0x429>
jmp    152e <fill_hs+0x42e>
jmp    1533 <fill_hs+0x433>
jmp    1538 <fill_hs+0x438>
pop    %rbp
ret

x86 assembly (clang, -O2):
<fill_hs>:
add    $0xbf,%dil
cmp    $0x13,%dil
ja     12a3 <fill_hs+0x1a3>
movzbl %dil,%eax
lea    0xf87(%rip),%rdi
movslq (%rdi,%rax,4),%rax
add    %rdi,%rax
jmp    *%rax
add    $0xbf,%sil
cmp    $0x13,%sil
ja     12a3 <fill_hs+0x1a3>
movsd  0xed8(%rip),%xmm0
movsd  0xed8(%rip),%xmm1
movzbl %sil,%eax
lea    0x1095(%rip),%rsi
movslq (%rsi,%rax,4),%rax
add    %rsi,%rax
jmp    *%rax
movsd  0xf34(%rip),%xmm0
movsd  0xf34(%rip),%xmm1
jmp    1293 <fill_hs+0x193>
add    $0xbf,%sil
cmp    $0x13,%sil
ja     12a3 <fill_hs+0x1a3>
movsd  0xea1(%rip),%xmm0
movsd  0xea1(%rip),%xmm1
movzbl %sil,%eax
lea    0xffe(%rip),%rsi
movslq (%rsi,%rax,4),%rax
add    %rsi,%rax
jmp    *%rax
movsd  0xedd(%rip),%xmm0
movsd  0xedd(%rip),%xmm1
jmp    1293 <fill_hs+0x193>
add    $0xbf,%sil
cmp    $0x13,%sil
ja     12a3 <fill_hs+0x1a3>
movsd  0xe6a(%rip),%xmm0
movsd  0xe6a(%rip),%xmm1
movzbl %sil,%eax
lea    0xf67(%rip),%rsi
movslq (%rsi,%rax,4),%rax
add    %rsi,%rax
jmp    *%rax
movsd  0xe76(%rip),%xmm0
movsd  0xe76(%rip),%xmm1
jmp    1293 <fill_hs+0x193>
add    $0xbf,%sil
cmp    $0x13,%sil
ja     12a3 <fill_hs+0x1a3>
movsd  0xdf3(%rip),%xmm0
movsd  0xdf3(%rip),%xmm1
movzbl %sil,%eax
lea    0xed0(%rip),%rsi
movslq (%rsi,%rax,4),%rax
add    %rsi,%rax
jmp    *%rax
movsd  0xdff(%rip),%xmm0
movsd  0xdff(%rip),%xmm1
jmp    1293 <fill_hs+0x193>
movsd  0xe2d(%rip),%xmm0
movsd  0xe2d(%rip),%xmm1
jmp    1293 <fill_hs+0x193>
movsd  0xdfb(%rip),%xmm0
movsd  0xdfb(%rip),%xmm1
jmp    1293 <fill_hs+0x193>
movsd  0xdd9(%rip),%xmm0
movsd  0xdd9(%rip),%xmm1
jmp    1293 <fill_hs+0x193>
movsd  0xda7(%rip),%xmm0
movsd  0xda7(%rip),%xmm1
jmp    1293 <fill_hs+0x193>
movsd  0xd85(%rip),%xmm0
movsd  0xd85(%rip),%xmm1
addsd  (%rdx),%xmm1
movsd  %xmm1,(%rdx)
addsd  (%rcx),%xmm0
movsd  %xmm0,(%rcx)
ret

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

LLVM IR (-O2):
define void @fill_hs(i8 signext %0, i8 signext %1, double* %2, double* %3) {
switch i8 %0, label %28 [
i8 65, label %5
i8 67, label %9
i8 71, label %13
i8 84, label %17
]
5: ; preds = %4
switch i8 %1, label %28 [
i8 65, label %21
i8 67, label %6
i8 71, label %7
i8 84, label %8
]
6: ; preds = %5
br label %21
7: ; preds = %5
br label %21
8: ; preds = %5
br label %21
9: ; preds = %4
switch i8 %1, label %28 [
i8 65, label %21
i8 67, label %10
i8 71, label %11
i8 84, label %12
]
10: ; preds = %9
br label %21
11: ; preds = %9
br label %21
12: ; preds = %9
br label %21
13: ; preds = %4
switch i8 %1, label %28 [
i8 65, label %21
i8 67, label %14
i8 71, label %15
i8 84, label %16
]
14: ; preds = %13
br label %21
15: ; preds = %13
br label %21
16: ; preds = %13
br label %21
17: ; preds = %4
switch i8 %1, label %28 [
i8 65, label %21
i8 67, label %18
i8 71, label %19
i8 84, label %20
]
18: ; preds = %17
br label %21
19: ; preds = %17
br label %21
20: ; preds = %17
br label %21
21: ; preds = %17, %13, %9, %5, %6, %8, %7, %14, %16, %15, %19, %20, %18, %11, %12, %10
%22 = phi double [ 1.100000e+04, %10 ], [ 7.800000e+03, %12 ], [ 1.190000e+04, %11 ], [ 5.600000e+03, %18 ], [ 9.100000e+03, %20 ], [ 5.800000e+03, %19 ], [ 1.100000e+04, %15 ], [ 6.500000e+03, %16 ], [ 1.110000e+04, %14 ], [ 7.800000e+03, %7 ], [ 8.600000e+03, %8 ], [ 6.500000e+03, %6 ], [ 9.100000e+03, %5 ], [ 5.800000e+03, %9 ], [ 5.600000e+03, %13 ], [ 6.000000e+03, %17 ]
%23 = phi double [ 2.660000e+01, %10 ], [ 2.080000e+01, %12 ], [ 2.780000e+01, %11 ], [ 1.350000e+01, %18 ], [ 2.400000e+01, %20 ], [ 1.290000e+01, %19 ], [ 2.660000e+01, %15 ], [ 1.730000e+01, %16 ], [ 2.670000e+01, %14 ], [ 2.080000e+01, %7 ], [ 2.390000e+01, %8 ], [ 1.730000e+01, %6 ], [ 2.400000e+01, %5 ], [ 1.290000e+01, %9 ], [ 1.350000e+01, %13 ], [ 1.690000e+01, %17 ]
%24 = load double, double* %2
%25 = fadd double %24, %22
store double %25, double* %2
%26 = load double, double* %3
%27 = fadd double %26, %23
store double %27, double* %3
br label %28
28: ; preds = %21, %17, %4, %13, %9, %5
ret void
}