#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 /*<<< orphan*/ strcat(char *, char *);
char *form_bit_name(int form_flags) {
  static char buf[512];
  buf[0] = '\0';
  if (form_flags && (2)) {
    strcat(buf, " poison");
  } else if (form_flags && (1)) {
    strcat(buf, " edible");
  } else if (form_flags && (4)) {
    strcat(buf, " magical");
  } else if (form_flags && (8)) {
    strcat(buf, " instant_rot");
  } else if (form_flags && (16)) {
    strcat(buf, " other");
  } else if (form_flags && (64)) {
    strcat(buf, " animal");
  } else if (form_flags && (128)) {
    strcat(buf, " sentient");
  } else if (form_flags && (256)) {
    strcat(buf, " undead");
  } else if (form_flags && (512)) {
    strcat(buf, " construct");
  } else if (form_flags && (1024)) {
    strcat(buf, " mist");
  } else if (form_flags && (2048)) {
    strcat(buf, " intangible");
  } else if (form_flags && (4096)) {
    strcat(buf, " biped");
  } else if (form_flags && (8192)) {
    strcat(buf, " centaur");
  } else if (form_flags && (16384)) {
    strcat(buf, " insect");
  } else if (form_flags && (32768)) {
    strcat(buf, " spider");
  } else if (form_flags && (65536)) {
    strcat(buf, " crustacean");
  } else if (form_flags && (131072)) {
    strcat(buf, " worm");
  } else if (form_flags && (262144)) {
    strcat(buf, " blob");
  } else if (form_flags && (2097152)) {
    strcat(buf, " mammal");
  } else if (form_flags && (4194304)) {
    strcat(buf, " bird");
  } else if (form_flags && (8388608)) {
    strcat(buf, " reptile");
  } else if (form_flags && (16777216)) {
    strcat(buf, " snake");
  } else if (form_flags && (33554432)) {
    strcat(buf, " dragon");
  } else if (form_flags && (67108864)) {
    strcat(buf, " amphibian");
  } else if (form_flags && (134217728)) {
    strcat(buf, " fish");
  } else if (form_flags && (268435456)) {
    strcat(buf, " cold_blooded");
  }
  return (buf[0] != '\0') ? buf + 1 : "none";
}


x86 assembly (clang, -O0):
<form_bit_name>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
movb   $0x0,0x2f1e(%rip)
cmpl   $0x0,-0x4(%rbp)
je     1144 <form_bit_name+0x34>
lea    0x2f0d(%rip),%rdi
lea    0xec6(%rip),%rsi
call   1030 <strcat@plt>
jmp    150e <form_bit_name+0x3fe>
cmpl   $0x0,-0x4(%rbp)
je     1166 <form_bit_name+0x56>
lea    0x2eeb(%rip),%rdi
lea    0xeac(%rip),%rsi
call   1030 <strcat@plt>
jmp    1509 <form_bit_name+0x3f9>
cmpl   $0x0,-0x4(%rbp)
je     1188 <form_bit_name+0x78>
lea    0x2ec9(%rip),%rdi
lea    0xe92(%rip),%rsi
call   1030 <strcat@plt>
jmp    1504 <form_bit_name+0x3f4>
cmpl   $0x0,-0x4(%rbp)
je     11aa <form_bit_name+0x9a>
lea    0x2ea7(%rip),%rdi
lea    0xe79(%rip),%rsi
call   1030 <strcat@plt>
jmp    14ff <form_bit_name+0x3ef>
cmpl   $0x0,-0x4(%rbp)
je     11cc <form_bit_name+0xbc>
lea    0x2e85(%rip),%rdi
lea    0xe64(%rip),%rsi
call   1030 <strcat@plt>
jmp    14fa <form_bit_name+0x3ea>
cmpl   $0x0,-0x4(%rbp)
je     11ee <form_bit_name+0xde>
lea    0x2e63(%rip),%rdi
lea    0xe49(%rip),%rsi
call   1030 <strcat@plt>
jmp    14f5 <form_bit_name+0x3e5>
cmpl   $0x0,-0x4(%rbp)
je     1210 <form_bit_name+0x100>
lea    0x2e41(%rip),%rdi
lea    0xe2f(%rip),%rsi
call   1030 <strcat@plt>
jmp    14f0 <form_bit_name+0x3e0>
cmpl   $0x0,-0x4(%rbp)
je     1232 <form_bit_name+0x122>
lea    0x2e1f(%rip),%rdi
lea    0xe17(%rip),%rsi
call   1030 <strcat@plt>
jmp    14eb <form_bit_name+0x3db>
cmpl   $0x0,-0x4(%rbp)
je     1254 <form_bit_name+0x144>
lea    0x2dfd(%rip),%rdi
lea    0xdfd(%rip),%rsi
call   1030 <strcat@plt>
jmp    14e6 <form_bit_name+0x3d6>
cmpl   $0x0,-0x4(%rbp)
je     1276 <form_bit_name+0x166>
lea    0x2ddb(%rip),%rdi
lea    0xde6(%rip),%rsi
call   1030 <strcat@plt>
jmp    14e1 <form_bit_name+0x3d1>
cmpl   $0x0,-0x4(%rbp)
je     1298 <form_bit_name+0x188>
lea    0x2db9(%rip),%rdi
lea    0xdca(%rip),%rsi
call   1030 <strcat@plt>
jmp    14dc <form_bit_name+0x3cc>
cmpl   $0x0,-0x4(%rbp)
je     12ba <form_bit_name+0x1aa>
lea    0x2d97(%rip),%rdi
lea    0xdb4(%rip),%rsi
call   1030 <strcat@plt>
jmp    14d7 <form_bit_name+0x3c7>
cmpl   $0x0,-0x4(%rbp)
je     12dc <form_bit_name+0x1cc>
lea    0x2d75(%rip),%rdi
lea    0xd99(%rip),%rsi
call   1030 <strcat@plt>
jmp    14d2 <form_bit_name+0x3c2>
cmpl   $0x0,-0x4(%rbp)
je     12fe <form_bit_name+0x1ee>
lea    0x2d53(%rip),%rdi
lea    0xd80(%rip),%rsi
call   1030 <strcat@plt>
jmp    14cd <form_bit_name+0x3bd>
cmpl   $0x0,-0x4(%rbp)
je     1320 <form_bit_name+0x210>
lea    0x2d31(%rip),%rdi
lea    0xd66(%rip),%rsi
call   1030 <strcat@plt>
jmp    14c8 <form_bit_name+0x3b8>
cmpl   $0x0,-0x4(%rbp)
je     1342 <form_bit_name+0x232>
lea    0x2d0f(%rip),%rdi
lea    0xd4c(%rip),%rsi
call   1030 <strcat@plt>
jmp    14c3 <form_bit_name+0x3b3>
cmpl   $0x0,-0x4(%rbp)
je     1364 <form_bit_name+0x254>
lea    0x2ced(%rip),%rdi
lea    0xd36(%rip),%rsi
call   1030 <strcat@plt>
jmp    14be <form_bit_name+0x3ae>
cmpl   $0x0,-0x4(%rbp)
je     1386 <form_bit_name+0x276>
lea    0x2ccb(%rip),%rdi
lea    0xd1a(%rip),%rsi
call   1030 <strcat@plt>
jmp    14b9 <form_bit_name+0x3a9>
cmpl   $0x0,-0x4(%rbp)
je     13a8 <form_bit_name+0x298>
lea    0x2ca9(%rip),%rdi
lea    0xcfe(%rip),%rsi
call   1030 <strcat@plt>
jmp    14b4 <form_bit_name+0x3a4>
cmpl   $0x0,-0x4(%rbp)
je     13ca <form_bit_name+0x2ba>
lea    0x2c87(%rip),%rdi
lea    0xce4(%rip),%rsi
call   1030 <strcat@plt>
jmp    14af <form_bit_name+0x39f>
cmpl   $0x0,-0x4(%rbp)
je     13ec <form_bit_name+0x2dc>
lea    0x2c65(%rip),%rdi
lea    0xcc8(%rip),%rsi
call   1030 <strcat@plt>
jmp    14aa <form_bit_name+0x39a>
cmpl   $0x0,-0x4(%rbp)
je     140e <form_bit_name+0x2fe>
lea    0x2c43(%rip),%rdi
lea    0xcaf(%rip),%rsi
call   1030 <strcat@plt>
jmp    14a5 <form_bit_name+0x395>
cmpl   $0x0,-0x4(%rbp)
je     1430 <form_bit_name+0x320>
lea    0x2c21(%rip),%rdi
lea    0xc94(%rip),%rsi
call   1030 <strcat@plt>
jmp    14a0 <form_bit_name+0x390>
cmpl   $0x0,-0x4(%rbp)
je     1452 <form_bit_name+0x342>
lea    0x2bff(%rip),%rdi
lea    0xc7a(%rip),%rsi
call   1030 <strcat@plt>
jmp    149b <form_bit_name+0x38b>
cmpl   $0x0,-0x4(%rbp)
je     1474 <form_bit_name+0x364>
lea    0x2bdd(%rip),%rdi
lea    0xc63(%rip),%rsi
call   1030 <strcat@plt>
jmp    1496 <form_bit_name+0x386>
cmpl   $0x0,-0x4(%rbp)
je     1491 <form_bit_name+0x381>
lea    0x2bbb(%rip),%rdi
lea    0xc47(%rip),%rsi
call   1030 <strcat@plt>
jmp    1496 <form_bit_name+0x386>
jmp    149b <form_bit_name+0x38b>
jmp    14a0 <form_bit_name+0x390>
jmp    14a5 <form_bit_name+0x395>
jmp    14aa <form_bit_name+0x39a>
jmp    14af <form_bit_name+0x39f>
jmp    14b4 <form_bit_name+0x3a4>
jmp    14b9 <form_bit_name+0x3a9>
jmp    14be <form_bit_name+0x3ae>
jmp    14c3 <form_bit_name+0x3b3>
jmp    14c8 <form_bit_name+0x3b8>
jmp    14cd <form_bit_name+0x3bd>
jmp    14d2 <form_bit_name+0x3c2>
jmp    14d7 <form_bit_name+0x3c7>
jmp    14dc <form_bit_name+0x3cc>
jmp    14e1 <form_bit_name+0x3d1>
jmp    14e6 <form_bit_name+0x3d6>
jmp    14eb <form_bit_name+0x3db>
jmp    14f0 <form_bit_name+0x3e0>
jmp    14f5 <form_bit_name+0x3e5>
jmp    14fa <form_bit_name+0x3ea>
jmp    14ff <form_bit_name+0x3ef>
jmp    1504 <form_bit_name+0x3f4>
jmp    1509 <form_bit_name+0x3f9>
jmp    150e <form_bit_name+0x3fe>
movsbl 0x2b2b(%rip),%edx
lea    0xbc5(%rip),%rax
lea    0x2b1d(%rip),%rcx
add    $0x1,%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<form_bit_name>:
push   %rax
movb   $0x0,0x2f28(%rip)
test   %edi,%edi
je     114a <form_bit_name+0x3a>
lea    0x2f1d(%rip),%rdi
lea    0xed6(%rip),%rsi
call   1030 <strcat@plt>
cmpb   $0x0,0x2f0a(%rip)
lea    0xecb(%rip),%rcx
lea    0x2efd(%rip),%rax
cmove  %rcx,%rax
pop    %rcx
ret
lea    0xeb7(%rip),%rax
pop    %rcx
ret

LLVM IR (-O0):
@form_bit_name.buf = internal global [512 x i8] zeroinitializer
@.str = [8 x i8] c" poison\00"
@.str.1 = [8 x i8] c" edible\00"
@.str.2 = [9 x i8] c" magical\00"
@.str.3 = [13 x i8] c" instant_rot\00"
@.str.4 = [7 x i8] c" other\00"
@.str.5 = [8 x i8] c" animal\00"
@.str.6 = [10 x i8] c" sentient\00"
@.str.7 = [8 x i8] c" undead\00"
@.str.8 = [11 x i8] c" construct\00"
@.str.9 = [6 x i8] c" mist\00"
@.str.10 = [12 x i8] c" intangible\00"
@.str.11 = [7 x i8] c" biped\00"
@.str.12 = [9 x i8] c" centaur\00"
@.str.13 = [8 x i8] c" insect\00"
@.str.14 = [8 x i8] c" spider\00"
@.str.15 = [12 x i8] c" crustacean\00"
@.str.16 = [6 x i8] c" worm\00"
@.str.17 = [6 x i8] c" blob\00"
@.str.18 = [8 x i8] c" mammal\00"
@.str.19 = [6 x i8] c" bird\00"
@.str.20 = [9 x i8] c" reptile\00"
@.str.21 = [7 x i8] c" snake\00"
@.str.22 = [8 x i8] c" dragon\00"
@.str.23 = [11 x i8] c" amphibian\00"
@.str.24 = [6 x i8] c" fish\00"
@.str.25 = [14 x i8] c" cold_blooded\00"
@.str.26 = [5 x i8] c"none\00"
define i8* @form_bit_name(i32 %0) {
%2 = alloca i32
store i32 %0, i32* %2
store i8 0, i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0)
%3 = load i32, i32* %2
%4 = icmp ne i32 %3, 0
br i1 %4, label %5, label %7
5: ; preds = %1
%6 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str, i64 0, i64 0))
br label %157
7: ; preds = %1
%8 = load i32, i32* %2
%9 = icmp ne i32 %8, 0
br i1 %9, label %10, label %12
10: ; preds = %7
%11 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0))
br label %156
12: ; preds = %7
%13 = load i32, i32* %2
%14 = icmp ne i32 %13, 0
br i1 %14, label %15, label %17
15: ; preds = %12
%16 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.2, i64 0, i64 0))
br label %155
17: ; preds = %12
%18 = load i32, i32* %2
%19 = icmp ne i32 %18, 0
br i1 %19, label %20, label %22
20: ; preds = %17
%21 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3, i64 0, i64 0))
br label %154
22: ; preds = %17
%23 = load i32, i32* %2
%24 = icmp ne i32 %23, 0
br i1 %24, label %25, label %27
25: ; preds = %22
%26 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0))
br label %153
27: ; preds = %22
%28 = load i32, i32* %2
%29 = icmp ne i32 %28, 0
br i1 %29, label %30, label %32
30: ; preds = %27
%31 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.5, i64 0, i64 0))
br label %152
32: ; preds = %27
%33 = load i32, i32* %2
%34 = icmp ne i32 %33, 0
br i1 %34, label %35, label %37
35: ; preds = %32
%36 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i64 0, i64 0))
br label %151
37: ; preds = %32
%38 = load i32, i32* %2
%39 = icmp ne i32 %38, 0
br i1 %39, label %40, label %42
40: ; preds = %37
%41 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.7, i64 0, i64 0))
br label %150
42: ; preds = %37
%43 = load i32, i32* %2
%44 = icmp ne i32 %43, 0
br i1 %44, label %45, label %47
45: ; preds = %42
%46 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i64 0, i64 0))
br label %149
47: ; preds = %42
%48 = load i32, i32* %2
%49 = icmp ne i32 %48, 0
br i1 %49, label %50, label %52
50: ; preds = %47
%51 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0))
br label %148
52: ; preds = %47
%53 = load i32, i32* %2
%54 = icmp ne i32 %53, 0
br i1 %54, label %55, label %57
55: ; preds = %52
%56 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.10, i64 0, i64 0))
br label %147
57: ; preds = %52
%58 = load i32, i32* %2
%59 = icmp ne i32 %58, 0
br i1 %59, label %60, label %62
60: ; preds = %57
%61 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0))
br label %146
62: ; preds = %57
%63 = load i32, i32* %2
%64 = icmp ne i32 %63, 0
br i1 %64, label %65, label %67
65: ; preds = %62
%66 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.12, i64 0, i64 0))
br label %145
67: ; preds = %62
%68 = load i32, i32* %2
%69 = icmp ne i32 %68, 0
br i1 %69, label %70, label %72
70: ; preds = %67
%71 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.13, i64 0, i64 0))
br label %144
72: ; preds = %67
%73 = load i32, i32* %2
%74 = icmp ne i32 %73, 0
br i1 %74, label %75, label %77
75: ; preds = %72
%76 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.14, i64 0, i64 0))
br label %143
77: ; preds = %72
%78 = load i32, i32* %2
%79 = icmp ne i32 %78, 0
br i1 %79, label %80, label %82
80: ; preds = %77
%81 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i64 0, i64 0))
br label %142
82: ; preds = %77
%83 = load i32, i32* %2
%84 = icmp ne i32 %83, 0
br i1 %84, label %85, label %87
85: ; preds = %82
%86 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i64 0, i64 0))
br label %141
87: ; preds = %82
%88 = load i32, i32* %2
%89 = icmp ne i32 %88, 0
br i1 %89, label %90, label %92
90: ; preds = %87
%91 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0))
br label %140
92: ; preds = %87
%93 = load i32, i32* %2
%94 = icmp ne i32 %93, 0
br i1 %94, label %95, label %97
95: ; preds = %92
%96 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.18, i64 0, i64 0))
br label %139
97: ; preds = %92
%98 = load i32, i32* %2
%99 = icmp ne i32 %98, 0
br i1 %99, label %100, label %102
100: ; preds = %97
%101 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.19, i64 0, i64 0))
br label %138
102: ; preds = %97
%103 = load i32, i32* %2
%104 = icmp ne i32 %103, 0
br i1 %104, label %105, label %107
105: ; preds = %102
%106 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.20, i64 0, i64 0))
br label %137
107: ; preds = %102
%108 = load i32, i32* %2
%109 = icmp ne i32 %108, 0
br i1 %109, label %110, label %112
110: ; preds = %107
%111 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.21, i64 0, i64 0))
br label %136
112: ; preds = %107
%113 = load i32, i32* %2
%114 = icmp ne i32 %113, 0
br i1 %114, label %115, label %117
115: ; preds = %112
%116 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.22, i64 0, i64 0))
br label %135
117: ; preds = %112
%118 = load i32, i32* %2
%119 = icmp ne i32 %118, 0
br i1 %119, label %120, label %122
120: ; preds = %117
%121 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.23, i64 0, i64 0))
br label %134
122: ; preds = %117
%123 = load i32, i32* %2
%124 = icmp ne i32 %123, 0
br i1 %124, label %125, label %127
125: ; preds = %122
%126 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.24, i64 0, i64 0))
br label %133
127: ; preds = %122
%128 = load i32, i32* %2
%129 = icmp ne i32 %128, 0
br i1 %129, label %130, label %132
130: ; preds = %127
%131 = call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.25, i64 0, i64 0))
br label %132
132: ; preds = %130, %127
br label %133
133: ; preds = %132, %125
br label %134
134: ; preds = %133, %120
br label %135
135: ; preds = %134, %115
br label %136
136: ; preds = %135, %110
br label %137
137: ; preds = %136, %105
br label %138
138: ; preds = %137, %100
br label %139
139: ; preds = %138, %95
br label %140
140: ; preds = %139, %90
br label %141
141: ; preds = %140, %85
br label %142
142: ; preds = %141, %80
br label %143
143: ; preds = %142, %75
br label %144
144: ; preds = %143, %70
br label %145
145: ; preds = %144, %65
br label %146
146: ; preds = %145, %60
br label %147
147: ; preds = %146, %55
br label %148
148: ; preds = %147, %50
br label %149
149: ; preds = %148, %45
br label %150
150: ; preds = %149, %40
br label %151
151: ; preds = %150, %35
br label %152
152: ; preds = %151, %30
br label %153
153: ; preds = %152, %25
br label %154
154: ; preds = %153, %20
br label %155
155: ; preds = %154, %15
br label %156
156: ; preds = %155, %10
br label %157
157: ; preds = %156, %5
%158 = load i8, i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0)
%159 = sext i8 %158 to i32
%160 = icmp ne i32 %159, 0
%161 = zext i1 %160 to i64
%162 = select i1 %160, i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 1), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.26, i64 0, i64 0)
ret i8* %162
}

LLVM IR (-O2):
@form_bit_name.buf = internal global [512 x i8] zeroinitializer
@.str = [8 x i8] c" poison\00"
@.str.26 = [5 x i8] c"none\00"
define i8* @form_bit_name(i32 %0) {
store i8 0, i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0)
%2 = icmp eq i32 %0, 0
br i1 %2, label %8, label %3
3: ; preds = %1
%4 = tail call i32 @strcat(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str, i64 0, i64 0))
%5 = load i8, i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 0)
%6 = icmp eq i8 %5, 0
%7 = select i1 %6, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.26, i64 0, i64 0), i8* getelementptr inbounds ([512 x i8], [512 x i8]* @form_bit_name.buf, i64 0, i64 1)
br label %8
8: ; preds = %1, %3
%9 = phi i8* [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.26, i64 0, i64 0), %1 ], [ %7, %3 ]
ret i8* %9
}