#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*/ fflush(int /*<<< orphan*/);
int /*<<< orphan*/ printf(char *);
int /*<<< orphan*/ stdout;
void list_types(void) {
  printf(
      " 0 Empty                  3c PartitionMagic recovery 85 Linux extended\n"
      " 1 FAT12                  40 Venix 80286             86 NTFS volume "
      "set\n"
      " 2 XENIX root             41 PPC PReP Boot           87 NTFS volume "
      "set\n"
      " 3 XENIX usr              42 SFS                     93 Amoeba\n"
      " 4 FAT16 <32M             4d QNX4.x                  94 Amoeba BBT\n"
      " 5 Extended               4e QNX4.x 2nd part         a0 IBM Thinkpad "
      "hibernate\n"
      " 6 FAT16                  4f QNX4.x 3rd part         a5 BSD/386\n"
      " 7 HPFS/NTFS              50 OnTrack DM              a6 OpenBSD\n"
      " 8 AIX                    51 OnTrack DM6 Aux1        a7 NeXTSTEP\n"
      " 9 AIX bootable           52 CP/M                    b7 BSDI fs\n"
      " a OS/2 Boot Manager      53 OnTrack DM6 Aux3        b8 BSDI swap\n"
      " b Win9x FAT32            54 OnTrack DM6             c1 DR-DOS/sec "
      "FAT-12\n"
      " c Win9x FAT32 (LBA)      55 EZ-Drive                c4 DR-DOS/sec "
      "FAT-16 <32M\n"
      " e Win9x FAT16 (LBA)      56 Golden Bow              c6 DR-DOS/sec "
      "FAT-16\n"
      " f Win9x Extended (LBA)   5c Priam Edisk             c7 Syrinx\n"
      "10 OPUS                   61 SpeedStor               db CP/M / CTOS / "
      "...\n"
      "11 Hide FAT12             63 GNU HURD or SysV        e1 DOS access\n"
      "12 Compaq diagnostics     64 Novell Netware 286      e3 DOS R/O\n"
      "14 Hide FAT16 <32M        65 Novell Netware 386      e4 SpeedStor\n"
      "16 Hide FAT16             70 DiskSecure Multi-Boot   eb BeOS fs\n"
      "17 Hide HPFS/NTFS         75 PC/IX                   f1 SpeedStor\n"
      "18 AST Windows swapfile   80 ELKS / Old Minix        f2 DOS secondary\n"
      "1b Hide Win9x FAT32       81 New Minix / Old Linux   f4 SpeedStor\n"
      "1c Hide Win9x FAT32 (LBA) 82 Linux swap              fd Linux raid "
      "autodetect\n"
      "1e Hide Win9x FAT16 (LBA) 83 New Linux               fe LANstep\n"
      "24 NEC DOS                84 OS/2 Hide C:            ff BBT\n");
  fflush(stdout);
}


x86 assembly (clang, -O0):
<list_types>:
push   %rbp
mov    %rsp,%rbp
lea    0xed5(%rip),%rdi
call   1030 <printf@plt>
mov    0x2ea9(%rip),%rax
mov    (%rax),%edi
call   1040 <fflush@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<list_types>:
push   %rax
lea    0xed8(%rip),%rdi
call   1030 <puts@plt>
mov    0x2eac(%rip),%rax
mov    (%rax),%edi
pop    %rax
jmp    1040 <fflush@plt>

LLVM IR (-O0):
@.str = [1777 x i8] c" 0 Empty 3c PartitionMagic recovery 85 Linux extended\0A 1 FAT12 40 Venix 80286 86 NTFS volume set\0A 2 XENIX root 41 PPC PReP Boot 87 NTFS volume set\0A 3 XENIX usr 42 SFS 93 Amoeba\0A 4 FAT16 <32M 4d QNX4.x 94 Amoeba BBT\0A 5 Extended 4e QNX4.x 2nd part a0 IBM Thinkpad hibernate\0A 6 FAT16 4f QNX4.x 3rd part a5 BSD/386\0A 7 HPFS/NTFS 50 OnTrack DM a6 OpenBSD\0A 8 AIX 51 OnTrack DM6 Aux1 a7 NeXTSTEP\0A 9 AIX bootable 52 CP/M b7 BSDI fs\0A a OS/2 Boot Manager 53 OnTrack DM6 Aux3 b8 BSDI swap\0A b Win9x FAT32 54 OnTrack DM6 c1 DR-DOS/sec FAT-12\0A c Win9x FAT32 (LBA) 55 EZ-Drive c4 DR-DOS/sec FAT-16 <32M\0A e Win9x FAT16 (LBA) 56 Golden Bow c6 DR-DOS/sec FAT-16\0A f Win9x Extended (LBA) 5c Priam Edisk c7 Syrinx\0A10 OPUS 61 SpeedStor db CP/M / CTOS / ...\0A11 Hide FAT12 63 GNU HURD or SysV e1 DOS access\0A12 Compaq diagnostics 64 Novell Netware 286 e3 DOS R/O\0A14 Hide FAT16 <32M 65 Novell Netware 386 e4 SpeedStor\0A16 Hide FAT16 70 DiskSecure Multi-Boot eb BeOS fs\0A17 Hide HPFS/NTFS 75 PC/IX f1 SpeedStor\0A18 AST Windows swapfile 80 ELKS / Old Minix f2 DOS secondary\0A1b Hide Win9x FAT32 81 New Minix / Old Linux f4 SpeedStor\0A1c Hide Win9x FAT32 (LBA) 82 Linux swap fd Linux raid autodetect\0A1e Hide Win9x FAT16 (LBA) 83 New Linux fe LANstep\0A24 NEC DOS 84 OS/2 Hide C: ff BBT\0A\00"
@stdout = global i32 0
define void @list_types() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1777 x i8], [1777 x i8]* @.str, i64 0, i64 0))
%2 = load i32, i32* @stdout
%3 = call i32 @fflush(i32 %2)
ret void
}

LLVM IR (-O2):
@stdout = global i32 0
@str = [1776 x i8] c" 0 Empty 3c PartitionMagic recovery 85 Linux extended\0A 1 FAT12 40 Venix 80286 86 NTFS volume set\0A 2 XENIX root 41 PPC PReP Boot 87 NTFS volume set\0A 3 XENIX usr 42 SFS 93 Amoeba\0A 4 FAT16 <32M 4d QNX4.x 94 Amoeba BBT\0A 5 Extended 4e QNX4.x 2nd part a0 IBM Thinkpad hibernate\0A 6 FAT16 4f QNX4.x 3rd part a5 BSD/386\0A 7 HPFS/NTFS 50 OnTrack DM a6 OpenBSD\0A 8 AIX 51 OnTrack DM6 Aux1 a7 NeXTSTEP\0A 9 AIX bootable 52 CP/M b7 BSDI fs\0A a OS/2 Boot Manager 53 OnTrack DM6 Aux3 b8 BSDI swap\0A b Win9x FAT32 54 OnTrack DM6 c1 DR-DOS/sec FAT-12\0A c Win9x FAT32 (LBA) 55 EZ-Drive c4 DR-DOS/sec FAT-16 <32M\0A e Win9x FAT16 (LBA) 56 Golden Bow c6 DR-DOS/sec FAT-16\0A f Win9x Extended (LBA) 5c Priam Edisk c7 Syrinx\0A10 OPUS 61 SpeedStor db CP/M / CTOS / ...\0A11 Hide FAT12 63 GNU HURD or SysV e1 DOS access\0A12 Compaq diagnostics 64 Novell Netware 286 e3 DOS R/O\0A14 Hide FAT16 <32M 65 Novell Netware 386 e4 SpeedStor\0A16 Hide FAT16 70 DiskSecure Multi-Boot eb BeOS fs\0A17 Hide HPFS/NTFS 75 PC/IX f1 SpeedStor\0A18 AST Windows swapfile 80 ELKS / Old Minix f2 DOS secondary\0A1b Hide Win9x FAT32 81 New Minix / Old Linux f4 SpeedStor\0A1c Hide Win9x FAT32 (LBA) 82 Linux swap fd Linux raid autodetect\0A1e Hide Win9x FAT16 (LBA) 83 New Linux fe LANstep\0A24 NEC DOS 84 OS/2 Hide C: ff BBT\00"
define void @list_types() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1776 x i8], [1776 x i8]* @str, i64 0, i64 0))
%2 = load i32, i32* @stdout
%3 = tail call i32 @fflush(i32 %2)
ret void
}