#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 printmaskinfo() {
  printf("WAVEX Speaker positions:\n");
  printf("FRONT LEFT             0x1\n"
         "FRONT RIGHT            0x2\n"
         "FRONT CENTER           0x4\n"
         "LOW FREQUENCY          0x8\n"
         "BACK LEFT              0x10\n"
         "BACK RIGHT             0x20\n"
         "FRONT LEFT OF CENTER   0x40\n"
         "FRONT RIGHT OF CENTER  0x80\n"
         "BACK CENTER            0x100\n"
         "SIDE LEFT              0x200\n"
         "SIDE RIGHT             0x400\n"
         "TOP CENTER             0x800\n"
         "TOP FRONT LEFT         0x1000\n"
         "TOP FRONT CENTER       0x2000\n"
         "TOP FRONT RIGHT        0x4000\n"
         "TOP BACK LEFT          0x8000\n"
         "TOP BACK CENTER        0x10000\n"
         "TOP BACK RIGHT         0x20000\n");
  printf("The value 0x80000000 is reserved.\n");
  printf("Standard layouts:\n"
         "Mono       0x40        (64)\n"
         "Stereo     0x03         (3)\n"
         "Quad       0x33        (51)\n"
         "LCRS       0x107      (263)\n"
         "5.0        0x37        (55)\n"
         "5.1        0x3f        (63)\n"
         "7.1        0xff       (255)\n"
         "Cube       0x2d033 (184371)\n");
}


x86 assembly (clang, -O0):
<printmaskinfo>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
lea    0xef3(%rip),%rdi
call   1030 <printf@plt>
lea    0x10ee(%rip),%rdi
call   1030 <printf@plt>
lea    0x1105(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<printmaskinfo>:
push   %rax
lea    0xee8(%rip),%rdi
call   1030 <puts@plt>
lea    0xef5(%rip),%rdi
call   1030 <puts@plt>
lea    0x10ef(%rip),%rdi
call   1030 <puts@plt>
lea    0x1105(%rip),%rdi
pop    %rax
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [26 x i8] c"WAVEX Speaker positions:\0A\00"
@.str.1 = [519 x i8] c"FRONT LEFT 0x1\0AFRONT RIGHT 0x2\0AFRONT CENTER 0x4\0ALOW FREQUENCY 0x8\0ABACK LEFT 0x10\0ABACK RIGHT 0x20\0AFRONT LEFT OF CENTER 0x40\0AFRONT RIGHT OF CENTER 0x80\0ABACK CENTER 0x100\0ASIDE LEFT 0x200\0ASIDE RIGHT 0x400\0ATOP CENTER 0x800\0ATOP FRONT LEFT 0x1000\0ATOP FRONT CENTER 0x2000\0ATOP FRONT RIGHT 0x4000\0ATOP BACK LEFT 0x8000\0ATOP BACK CENTER 0x10000\0ATOP BACK RIGHT 0x20000\0A\00"
@.str.2 = [35 x i8] c"The value 0x80000000 is reserved.\0A\00"
@.str.3 = [243 x i8] c"Standard layouts:\0AMono 0x40 (64)\0AStereo 0x03 (3)\0AQuad 0x33 (51)\0ALCRS 0x107 (263)\0A5.0 0x37 (55)\0A5.1 0x3f (63)\0A7.1 0xff (255)\0ACube 0x2d033 (184371)\0A\00"
define void @printmaskinfo() {
%1 = call i32 @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([519 x i8], [519 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.2, i64 0, i64 0))
%4 = call i32 @printf(i8* getelementptr inbounds ([243 x i8], [243 x i8]* @.str.3, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [25 x i8] c"WAVEX Speaker positions:\00"
@str.4 = [518 x i8] c"FRONT LEFT 0x1\0AFRONT RIGHT 0x2\0AFRONT CENTER 0x4\0ALOW FREQUENCY 0x8\0ABACK LEFT 0x10\0ABACK RIGHT 0x20\0AFRONT LEFT OF CENTER 0x40\0AFRONT RIGHT OF CENTER 0x80\0ABACK CENTER 0x100\0ASIDE LEFT 0x200\0ASIDE RIGHT 0x400\0ATOP CENTER 0x800\0ATOP FRONT LEFT 0x1000\0ATOP FRONT CENTER 0x2000\0ATOP FRONT RIGHT 0x4000\0ATOP BACK LEFT 0x8000\0ATOP BACK CENTER 0x10000\0ATOP BACK RIGHT 0x20000\00"
@str.5 = [34 x i8] c"The value 0x80000000 is reserved.\00"
@str.6 = [242 x i8] c"Standard layouts:\0AMono 0x40 (64)\0AStereo 0x03 (3)\0AQuad 0x33 (51)\0ALCRS 0x107 (263)\0A5.0 0x37 (55)\0A5.1 0x3f (63)\0A7.1 0xff (255)\0ACube 0x2d033 (184371)\00"
define void @printmaskinfo() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([518 x i8], [518 x i8]* @str.4, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @str.5, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([242 x i8], [242 x i8]* @str.6, i64 0, i64 0))
ret void
}