#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*/ printf(char *);
void usage(void) {
  printf("CDP MCTOOLS: CHXFORMAT v1.0.1beta (c) RWD,CDP 2009\n");
  printf("change GUID and/or speaker mask in WAVEX header of infile.\n");
  printf("usage: chxformat [-m | [[-t] [-gGUID] [-sMASK]] filename\n");
  printf(" -gGUID : change GUID type between PCM and AMB.\n"
         "          Plain WAVEX: GUID = 1\n"
         "          AMB:         GUID = 2\n"
         " -sMASK : change speaker position mask.\n"
         "          MASK = 0:  unset channel mask\n"
         "             else set to MASK\n"
         "          MASK may be given in decimal or hex (prefix '0x').\n"
         " -m     : (not in combination with other options)\n"
         " NOTE: speaker positions are only supported for WAVEX PCM files.\n"
         "       If GUID is set to 2, the -s option should not be used. Any "
         "existing\n"
         "       speaker positions will be set to zero.\n"
         " Type chxformat -m to see list of WAVEX mask values.\n"
         " -t     : Test only: do not modify file.\n"
         "  If only infile given, program prints current GUID type and speaker "
         "mask.\n"
         "  In test mode, program checks file, prints current channel mask as "
         "binary,\n"
         "   and new mask in binary, if -s option set.\n"
         "  Otherwise: program modifies infile (\"destructively\") - use with "
         "care!\n");
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
lea    0xf0d(%rip),%rdi
call   1030 <printf@plt>
lea    0xf3d(%rip),%rdi
call   1030 <printf@plt>
lea    0xf6b(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
push   %rax
lea    0xee8(%rip),%rdi
call   1030 <puts@plt>
lea    0xf0f(%rip),%rdi
call   1030 <puts@plt>
lea    0xf3e(%rip),%rdi
call   1030 <puts@plt>
lea    0xf6b(%rip),%rdi
pop    %rax
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [52 x i8] c"CDP MCTOOLS: CHXFORMAT v1.0.1beta (c) RWD,CDP 2009\0A\00"
@.str.1 = [60 x i8] c"change GUID and/or speaker mask in WAVEX header of infile.\0A\00"
@.str.2 = [58 x i8] c"usage: chxformat [-m | [[-t] [-gGUID] [-sMASK]] filename\0A\00"
@.str.3 = [882 x i8] c" -gGUID : change GUID type between PCM and AMB.\0A Plain WAVEX: GUID = 1\0A AMB: GUID = 2\0A -sMASK : change speaker position mask.\0A MASK = 0: unset channel mask\0A else set to MASK\0A MASK may be given in decimal or hex (prefix '0x').\0A -m : (not in combination with other options)\0A NOTE: speaker positions are only supported for WAVEX PCM files.\0A If GUID is set to 2, the -s option should not be used. Any existing\0A speaker positions will be set to zero.\0A Type chxformat -m to see list of WAVEX mask values.\0A -t : Test only: do not modify file.\0A If only infile given, program prints current GUID type and speaker mask.\0A In test mode, program checks file, prints current channel mask as binary,\0A and new mask in binary, if -s option set.\0A Otherwise: program modifies infile (\22destructively\22) - use with care!\0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.2, i64 0, i64 0))
%4 = call i32 @printf(i8* getelementptr inbounds ([882 x i8], [882 x i8]* @.str.3, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [51 x i8] c"CDP MCTOOLS: CHXFORMAT v1.0.1beta (c) RWD,CDP 2009\00"
@str.4 = [59 x i8] c"change GUID and/or speaker mask in WAVEX header of infile.\00"
@str.5 = [57 x i8] c"usage: chxformat [-m | [[-t] [-gGUID] [-sMASK]] filename\00"
@str.6 = [881 x i8] c" -gGUID : change GUID type between PCM and AMB.\0A Plain WAVEX: GUID = 1\0A AMB: GUID = 2\0A -sMASK : change speaker position mask.\0A MASK = 0: unset channel mask\0A else set to MASK\0A MASK may be given in decimal or hex (prefix '0x').\0A -m : (not in combination with other options)\0A NOTE: speaker positions are only supported for WAVEX PCM files.\0A If GUID is set to 2, the -s option should not be used. Any existing\0A speaker positions will be set to zero.\0A Type chxformat -m to see list of WAVEX mask values.\0A -t : Test only: do not modify file.\0A If only infile given, program prints current GUID type and speaker mask.\0A In test mode, program checks file, prints current channel mask as binary,\0A and new mask in binary, if -s option set.\0A Otherwise: program modifies infile (\22destructively\22) - use with care!\00"
define void @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @str.4, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @str.5, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([881 x i8], [881 x i8]* @str.6, i64 0, i64 0))
ret void
}