extern char *gaisler_device_str(int id) {
  switch (id) {
  case 0x003:
    return "GAISLER_LEON3";
  case 0x004:
    return "GAISLER_LEON3DSU";
  case 0x005:
    return "GAISLER_ETHAHB";
  case 0x01D:
    return "GAISLER_ETHMAC";
  case 0x006:
    return "GAISLER_APBMST";
  case 0x007:
    return "GAISLER_AHBUART";
  case 0x008:
    return "GAISLER_SRCTRL";
  case 0x009:
    return "GAISLER_SDCTRL";
  case 0x00C:
    return "GAISLER_APBUART";
  case 0x00D:
    return "GAISLER_IRQMP";
  case 0x00E:
    return "GAISLER_AHBRAM";
  case 0x011:
    return "GAISLER_GPTIMER";
  case 0x012:
    return "GAISLER_PCITRG";
  case 0x013:
    return "GAISLER_PCISBRG";
  case 0x014:
    return "GAISLER_PCIFBRG";
  case 0x015:
    return "GAISLER_PCITRACE";
  case 0x017:
    return "GAISLER_AHBTRACE";
  case 0x018:
    return "GAISLER_ETHDSU";
  case 0x01A:
    return "GAISLER_PIOPORT";
  case 0x01c:
    return "GAISLER_AHBJTAG";
  case 0x061:
    return "GAISLER_VGA";
  case 0X060:
    return "GAISLER_KBD";
  case 0xffd:
    return "GAISLER_L2TIME";
  case 0xffe:
    return "GAISLER_L2C";
  case 0xfff:
    return "GAISLER_PLUGPLAY";
  default:
    break;
  }
  return 0;
}


x86 assembly (clang, -O0):
<gaisler_device_str>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0xc(%rbp)
mov    -0xc(%rbp),%eax
mov    %eax,-0x10(%rbp)
sub    $0x3,%eax
je     12b9 <gaisler_device_str+0x1b9>
jmp    111b <gaisler_device_str+0x1b>
mov    -0x10(%rbp),%eax
sub    $0x4,%eax
je     12c9 <gaisler_device_str+0x1c9>
jmp    112c <gaisler_device_str+0x2c>
mov    -0x10(%rbp),%eax
sub    $0x5,%eax
je     12d9 <gaisler_device_str+0x1d9>
jmp    113d <gaisler_device_str+0x3d>
mov    -0x10(%rbp),%eax
sub    $0x6,%eax
je     12f9 <gaisler_device_str+0x1f9>
jmp    114e <gaisler_device_str+0x4e>
mov    -0x10(%rbp),%eax
sub    $0x7,%eax
je     1309 <gaisler_device_str+0x209>
jmp    115f <gaisler_device_str+0x5f>
mov    -0x10(%rbp),%eax
sub    $0x8,%eax
je     1319 <gaisler_device_str+0x219>
jmp    1170 <gaisler_device_str+0x70>
mov    -0x10(%rbp),%eax
sub    $0x9,%eax
je     1329 <gaisler_device_str+0x229>
jmp    1181 <gaisler_device_str+0x81>
mov    -0x10(%rbp),%eax
sub    $0xc,%eax
je     1339 <gaisler_device_str+0x239>
jmp    1192 <gaisler_device_str+0x92>
mov    -0x10(%rbp),%eax
sub    $0xd,%eax
je     1349 <gaisler_device_str+0x249>
jmp    11a3 <gaisler_device_str+0xa3>
mov    -0x10(%rbp),%eax
sub    $0xe,%eax
je     1359 <gaisler_device_str+0x259>
jmp    11b4 <gaisler_device_str+0xb4>
mov    -0x10(%rbp),%eax
sub    $0x11,%eax
je     1369 <gaisler_device_str+0x269>
jmp    11c5 <gaisler_device_str+0xc5>
mov    -0x10(%rbp),%eax
sub    $0x12,%eax
je     1379 <gaisler_device_str+0x279>
jmp    11d6 <gaisler_device_str+0xd6>
mov    -0x10(%rbp),%eax
sub    $0x13,%eax
je     1389 <gaisler_device_str+0x289>
jmp    11e7 <gaisler_device_str+0xe7>
mov    -0x10(%rbp),%eax
sub    $0x14,%eax
je     1399 <gaisler_device_str+0x299>
jmp    11f8 <gaisler_device_str+0xf8>
mov    -0x10(%rbp),%eax
sub    $0x15,%eax
je     13a9 <gaisler_device_str+0x2a9>
jmp    1209 <gaisler_device_str+0x109>
mov    -0x10(%rbp),%eax
sub    $0x17,%eax
je     13b9 <gaisler_device_str+0x2b9>
jmp    121a <gaisler_device_str+0x11a>
mov    -0x10(%rbp),%eax
sub    $0x18,%eax
je     13c9 <gaisler_device_str+0x2c9>
jmp    122b <gaisler_device_str+0x12b>
mov    -0x10(%rbp),%eax
sub    $0x1a,%eax
je     13d9 <gaisler_device_str+0x2d9>
jmp    123c <gaisler_device_str+0x13c>
mov    -0x10(%rbp),%eax
sub    $0x1c,%eax
je     13e9 <gaisler_device_str+0x2e9>
jmp    124d <gaisler_device_str+0x14d>
mov    -0x10(%rbp),%eax
sub    $0x1d,%eax
je     12e9 <gaisler_device_str+0x1e9>
jmp    125e <gaisler_device_str+0x15e>
mov    -0x10(%rbp),%eax
sub    $0x60,%eax
je     1409 <gaisler_device_str+0x309>
jmp    126f <gaisler_device_str+0x16f>
mov    -0x10(%rbp),%eax
sub    $0x61,%eax
je     13f9 <gaisler_device_str+0x2f9>
jmp    1280 <gaisler_device_str+0x180>
mov    -0x10(%rbp),%eax
sub    $0xffd,%eax
je     1419 <gaisler_device_str+0x319>
jmp    1293 <gaisler_device_str+0x193>
mov    -0x10(%rbp),%eax
sub    $0xffe,%eax
je     1429 <gaisler_device_str+0x329>
jmp    12a6 <gaisler_device_str+0x1a6>
mov    -0x10(%rbp),%eax
sub    $0xfff,%eax
je     1439 <gaisler_device_str+0x339>
jmp    1449 <gaisler_device_str+0x349>
lea    0xd40(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd3e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd3f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd3e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd3d(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd3c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd3c(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd3b(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd3a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd3a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd38(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd37(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd37(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd36(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd36(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd36(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd37(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd38(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd37(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd37(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd37(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd33(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd2f(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd2e(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
lea    0xd2a(%rip),%rax
mov    %rax,-0x8(%rbp)
jmp    1456 <gaisler_device_str+0x356>
jmp    144e <gaisler_device_str+0x34e>
movq   $0x0,-0x8(%rbp)
mov    -0x8(%rbp),%rax
pop    %rbp
ret

x86 assembly (clang, -O2):
<gaisler_device_str>:
cmp    $0xffc,%edi
jg     1133 <gaisler_device_str+0x33>
add    $0xfffffffd,%edi
cmp    $0x5e,%edi
ja     120f <gaisler_device_str+0x10f>
lea    0x1061(%rip),%rax
lea    0xede(%rip),%rcx
movslq (%rcx,%rdi,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
lea    0x1058(%rip),%rax
ret
cmp    $0xffd,%edi
je     11ff <gaisler_device_str+0xff>
cmp    $0xffe,%edi
je     1207 <gaisler_device_str+0x107>
cmp    $0xfff,%edi
jne    120f <gaisler_device_str+0x10f>
lea    0x1188(%rip),%rax
ret
lea    0x1035(%rip),%rax
ret
lea    0x104b(%rip),%rax
ret
lea    0x1052(%rip),%rax
ret
lea    0x105a(%rip),%rax
ret
lea    0x1061(%rip),%rax
ret
lea    0x1068(%rip),%rax
ret
lea    0x1070(%rip),%rax
ret
lea    0x1076(%rip),%rax
ret
lea    0x107d(%rip),%rax
ret
lea    0x1085(%rip),%rax
ret
lea    0x108c(%rip),%rax
ret
lea    0x1094(%rip),%rax
ret
lea    0x109c(%rip),%rax
ret
lea    0x10a5(%rip),%rax
ret
lea    0x10ae(%rip),%rax
ret
lea    0x10b5(%rip),%rax
ret
lea    0x10bd(%rip),%rax
ret
lea    0xfbc(%rip),%rax
ret
lea    0x10c9(%rip),%rax
ret
lea    0x10b5(%rip),%rax
ret
lea    0x10c5(%rip),%rax
ret
lea    0x10cc(%rip),%rax
ret
xor    %eax,%eax
ret

LLVM IR (-O0):
@.str = [14 x i8] c"GAISLER_LEON3\00"
@.str.1 = [17 x i8] c"GAISLER_LEON3DSU\00"
@.str.2 = [15 x i8] c"GAISLER_ETHAHB\00"
@.str.3 = [15 x i8] c"GAISLER_ETHMAC\00"
@.str.4 = [15 x i8] c"GAISLER_APBMST\00"
@.str.5 = [16 x i8] c"GAISLER_AHBUART\00"
@.str.6 = [15 x i8] c"GAISLER_SRCTRL\00"
@.str.7 = [15 x i8] c"GAISLER_SDCTRL\00"
@.str.8 = [16 x i8] c"GAISLER_APBUART\00"
@.str.9 = [14 x i8] c"GAISLER_IRQMP\00"
@.str.10 = [15 x i8] c"GAISLER_AHBRAM\00"
@.str.11 = [16 x i8] c"GAISLER_GPTIMER\00"
@.str.12 = [15 x i8] c"GAISLER_PCITRG\00"
@.str.13 = [16 x i8] c"GAISLER_PCISBRG\00"
@.str.14 = [16 x i8] c"GAISLER_PCIFBRG\00"
@.str.15 = [17 x i8] c"GAISLER_PCITRACE\00"
@.str.16 = [17 x i8] c"GAISLER_AHBTRACE\00"
@.str.17 = [15 x i8] c"GAISLER_ETHDSU\00"
@.str.18 = [16 x i8] c"GAISLER_PIOPORT\00"
@.str.19 = [16 x i8] c"GAISLER_AHBJTAG\00"
@.str.20 = [12 x i8] c"GAISLER_VGA\00"
@.str.21 = [12 x i8] c"GAISLER_KBD\00"
@.str.22 = [15 x i8] c"GAISLER_L2TIME\00"
@.str.23 = [12 x i8] c"GAISLER_L2C\00"
@.str.24 = [17 x i8] c"GAISLER_PLUGPLAY\00"
define i8* @gaisler_device_str(i32 %0) {
%2 = alloca i8*
%3 = alloca i32
store i32 %0, i32* %3
%4 = load i32, i32* %3
switch i32 %4, label %30 [
i32 3, label %5
i32 4, label %6
i32 5, label %7
i32 29, label %8
i32 6, label %9
i32 7, label %10
i32 8, label %11
i32 9, label %12
i32 12, label %13
i32 13, label %14
i32 14, label %15
i32 17, label %16
i32 18, label %17
i32 19, label %18
i32 20, label %19
i32 21, label %20
i32 23, label %21
i32 24, label %22
i32 26, label %23
i32 28, label %24
i32 97, label %25
i32 96, label %26
i32 4093, label %27
i32 4094, label %28
i32 4095, label %29
]
5: ; preds = %1
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str, i64 0, i64 0), i8** %2
br label %32
6: ; preds = %1
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.1, i64 0, i64 0), i8** %2
br label %32
7: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0), i8** %2
br label %32
8: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0), i8** %2
br label %32
9: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.4, i64 0, i64 0), i8** %2
br label %32
10: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.5, i64 0, i64 0), i8** %2
br label %32
11: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.6, i64 0, i64 0), i8** %2
br label %32
12: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.7, i64 0, i64 0), i8** %2
br label %32
13: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.8, i64 0, i64 0), i8** %2
br label %32
14: ; preds = %1
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.9, i64 0, i64 0), i8** %2
br label %32
15: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.10, i64 0, i64 0), i8** %2
br label %32
16: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0), i8** %2
br label %32
17: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.12, i64 0, i64 0), i8** %2
br label %32
18: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.13, i64 0, i64 0), i8** %2
br label %32
19: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.14, i64 0, i64 0), i8** %2
br label %32
20: ; preds = %1
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.15, i64 0, i64 0), i8** %2
br label %32
21: ; preds = %1
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.16, i64 0, i64 0), i8** %2
br label %32
22: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.17, i64 0, i64 0), i8** %2
br label %32
23: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.18, i64 0, i64 0), i8** %2
br label %32
24: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.19, i64 0, i64 0), i8** %2
br label %32
25: ; preds = %1
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.20, i64 0, i64 0), i8** %2
br label %32
26: ; preds = %1
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.21, i64 0, i64 0), i8** %2
br label %32
27: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.22, i64 0, i64 0), i8** %2
br label %32
28: ; preds = %1
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.23, i64 0, i64 0), i8** %2
br label %32
29: ; preds = %1
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.24, i64 0, i64 0), i8** %2
br label %32
30: ; preds = %1
br label %31
31: ; preds = %30
store i8* null, i8** %2
br label %32
32: ; preds = %31, %29, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5
%33 = load i8*, i8** %2
ret i8* %33
}

LLVM IR (-O2):
@.str = [14 x i8] c"GAISLER_LEON3\00"
@.str.1 = [17 x i8] c"GAISLER_LEON3DSU\00"
@.str.2 = [15 x i8] c"GAISLER_ETHAHB\00"
@.str.3 = [15 x i8] c"GAISLER_ETHMAC\00"
@.str.4 = [15 x i8] c"GAISLER_APBMST\00"
@.str.5 = [16 x i8] c"GAISLER_AHBUART\00"
@.str.6 = [15 x i8] c"GAISLER_SRCTRL\00"
@.str.7 = [15 x i8] c"GAISLER_SDCTRL\00"
@.str.8 = [16 x i8] c"GAISLER_APBUART\00"
@.str.9 = [14 x i8] c"GAISLER_IRQMP\00"
@.str.10 = [15 x i8] c"GAISLER_AHBRAM\00"
@.str.11 = [16 x i8] c"GAISLER_GPTIMER\00"
@.str.12 = [15 x i8] c"GAISLER_PCITRG\00"
@.str.13 = [16 x i8] c"GAISLER_PCISBRG\00"
@.str.14 = [16 x i8] c"GAISLER_PCIFBRG\00"
@.str.15 = [17 x i8] c"GAISLER_PCITRACE\00"
@.str.16 = [17 x i8] c"GAISLER_AHBTRACE\00"
@.str.17 = [15 x i8] c"GAISLER_ETHDSU\00"
@.str.18 = [16 x i8] c"GAISLER_PIOPORT\00"
@.str.19 = [16 x i8] c"GAISLER_AHBJTAG\00"
@.str.20 = [12 x i8] c"GAISLER_VGA\00"
@.str.21 = [12 x i8] c"GAISLER_KBD\00"
@.str.22 = [15 x i8] c"GAISLER_L2TIME\00"
@.str.23 = [12 x i8] c"GAISLER_L2C\00"
@.str.24 = [17 x i8] c"GAISLER_PLUGPLAY\00"
define i8* @gaisler_device_str(i32 %0) {
switch i32 %0, label %26 [
i32 3, label %27
i32 4, label %2
i32 5, label %3
i32 29, label %4
i32 6, label %5
i32 7, label %6
i32 8, label %7
i32 9, label %8
i32 12, label %9
i32 13, label %10
i32 14, label %11
i32 17, label %12
i32 18, label %13
i32 19, label %14
i32 20, label %15
i32 21, label %16
i32 23, label %17
i32 24, label %18
i32 26, label %19
i32 28, label %20
i32 97, label %21
i32 96, label %22
i32 4093, label %23
i32 4094, label %24
i32 4095, label %25
]
2: ; preds = %1
br label %27
3: ; preds = %1
br label %27
4: ; preds = %1
br label %27
5: ; preds = %1
br label %27
6: ; preds = %1
br label %27
7: ; preds = %1
br label %27
8: ; preds = %1
br label %27
9: ; preds = %1
br label %27
10: ; preds = %1
br label %27
11: ; preds = %1
br label %27
12: ; preds = %1
br label %27
13: ; preds = %1
br label %27
14: ; preds = %1
br label %27
15: ; preds = %1
br label %27
16: ; preds = %1
br label %27
17: ; preds = %1
br label %27
18: ; preds = %1
br label %27
19: ; preds = %1
br label %27
20: ; preds = %1
br label %27
21: ; preds = %1
br label %27
22: ; preds = %1
br label %27
23: ; preds = %1
br label %27
24: ; preds = %1
br label %27
25: ; preds = %1
br label %27
26: ; preds = %1
br label %27
27: ; preds = %1, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2
%28 = phi i8* [ null, %26 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @.str.24, i64 0, i64 0), %25 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.23, i64 0, i64 0), %24 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.22, i64 0, i64 0), %23 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.21, i64 0, i64 0), %22 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.20, i64 0, i64 0), %21 ], [ getelementptr inbounds ([16 x i8], [16 x i8]* @.str.19, i64 0, i64 0), %20 ], [ getelementptr inbounds ([16 x i8], [16 x i8]* @.str.18, i64 0, i64 0), %19 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.17, i64 0, i64 0), %18 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @.str.16, i64 0, i64 0), %17 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @.str.15, i64 0, i64 0), %16 ], [ getelementptr inbounds ([16 x i8], [16 x i8]* @.str.14, i64 0, i64 0), %15 ], [ getelementptr inbounds ([16 x i8], [16 x i8]* @.str.13, i64 0, i64 0), %14 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.12, i64 0, i64 0), %13 ], [ getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0), %12 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.10, i64 0, i64 0), %11 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @.str.9, i64 0, i64 0), %10 ], [ getelementptr inbounds ([16 x i8], [16 x i8]* @.str.8, i64 0, i64 0), %9 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.7, i64 0, i64 0), %8 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.6, i64 0, i64 0), %7 ], [ getelementptr inbounds ([16 x i8], [16 x i8]* @.str.5, i64 0, i64 0), %6 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.4, i64 0, i64 0), %5 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0), %4 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0), %3 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @.str.1, i64 0, i64 0), %2 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @.str, i64 0, i64 0), %1 ]
ret i8* %28
}