#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*/ cleanExit();
int /*<<< orphan*/ exit(int);
int /*<<< orphan*/ printf(char *);
void printHelp() {
  printf(
      "Valid options are:\n	-t [s,p,r,a,g,t]\tType (song, playlist, "
      "artist, album, genre, tag)\n	-l [name, ID]\tList (requires "
      "-t)\n	-p [name, ID]\tPlay (requires -t)\n		-s "
      "[s,a,r]\tShuffle (requires -p)\n		-z\tSmart shuffle (requires "
      "-p)\n		-r [number of repeats]\tRepeat playlist (requires "
      "-p)\n		-D {device name}\tOutput to specified device (requires "
      "-p)\n	-i [file path, directory]\tInsert songs\n	-e\tEdit via "
      "script using stdin\n	-E {script}\tEdit via script using command "
      "line\n	--old-edit\tEdit via deprecated portal interface\n	"
      "-a\tAdmin\n	-v\tVerbose\n	--version\t Print version "
      "information\n");
  cleanExit();
  exit(1);
}


x86 assembly (clang, -O0):
<printHelp>:
push   %rbp
mov    %rsp,%rbp
lea    0xec5(%rip),%rdi
call   1030 <printf@plt>
mov    $0x0,%al
call   1050 <cleanExit@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<printHelp>:
push   %rax
lea    0xec8(%rip),%rdi
call   1030 <puts@plt>
xor    %eax,%eax
call   1050 <cleanExit@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@.str = [567 x i8] c"Valid options are:\0A\09-t [s,p,r,a,g,t]\09Type (song, playlist, artist, album, genre, tag)\0A\09-l [name, ID]\09List (requires -t)\0A\09-p [name, ID]\09Play (requires -t)\0A\09\09-s [s,a,r]\09Shuffle (requires -p)\0A\09\09-z\09Smart shuffle (requires -p)\0A\09\09-r [number of repeats]\09Repeat playlist (requires -p)\0A\09\09-D {device name}\09Output to specified device (requires -p)\0A\09-i [file path, directory]\09Insert songs\0A\09-e\09Edit via script using stdin\0A\09-E {script}\09Edit via script using command line\0A\09--old-edit\09Edit via deprecated portal interface\0A\09-a\09Admin\0A\09-v\09Verbose\0A\09--version\09 Print version information\0A\00"
define void @printHelp() {
%1 = call i32 @printf(i8* getelementptr inbounds ([567 x i8], [567 x i8]* @.str, i64 0, i64 0))
%2 = call i32 (...) @cleanExit()
%3 = call i32 @exit(i32 1)
unreachable
}

LLVM IR (-O2):
@str = [566 x i8] c"Valid options are:\0A\09-t [s,p,r,a,g,t]\09Type (song, playlist, artist, album, genre, tag)\0A\09-l [name, ID]\09List (requires -t)\0A\09-p [name, ID]\09Play (requires -t)\0A\09\09-s [s,a,r]\09Shuffle (requires -p)\0A\09\09-z\09Smart shuffle (requires -p)\0A\09\09-r [number of repeats]\09Repeat playlist (requires -p)\0A\09\09-D {device name}\09Output to specified device (requires -p)\0A\09-i [file path, directory]\09Insert songs\0A\09-e\09Edit via script using stdin\0A\09-E {script}\09Edit via script using command line\0A\09--old-edit\09Edit via deprecated portal interface\0A\09-a\09Admin\0A\09-v\09Verbose\0A\09--version\09 Print version information\00"
define void @printHelp() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([566 x i8], [566 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 (...) @cleanExit()
%3 = tail call i32 @exit(i32 1)
unreachable
}