#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("usage: fmdcode [-x][-w] infile outfile layout\n"
         "       -w    :   write plain WAVE outfile format\n"
         "                (.wav default - use generic wavex format).\n"
         "       -x    : write std WAVEX speaker positions to header\n"
         "               (applies to compatible layouts only; requires .wav "
         "extension).\n"
         "   layout    : one of the choices below.\n"
         "       Output channel order is anticlockwise from centre front\n"
         "            except where indicated.\n"
         "   Layouts indicated with * are compatible with WAVEX speaker "
         "position order. \n"
         "   Available speaker layouts:\n"
         "   1    :  *  mono (= W signal only)\n"
         "   2    :  *  stereo (quasi mid/side, = W +- Y)\n"
         "   3    :     square\n"
         "   4    :  *  quad FL,FR,RL,RR order\n"
         "   5    :     pentagon\n"
         "   6    :  *  5.0 surround (WAVEX order)\n"
         "   7    :  *  5.1 surround (WAVEX order, silent LFE)\n"
         "   8    :     hexagon\n"
         "   9    :     octagon 1 (front pair, 45deg)\n"
         "   10   :     octagon 2 (front centre speaker)\n"
         "   11   :     cube (as 3, low-high interleaved. Csound-compatible.)\n"
         "   12   :  *  cube (as 4, low quad followed by high quad).\n"
         " NOTE: no shelf filters or NF compensation used.\n");
}


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

x86 assembly (clang, -O2):
<usage>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [1090 x i8] c"usage: fmdcode [-x][-w] infile outfile layout\0A -w : write plain WAVE outfile format\0A (.wav default - use generic wavex format).\0A -x : write std WAVEX speaker positions to header\0A (applies to compatible layouts only; requires .wav extension).\0A layout : one of the choices below.\0A Output channel order is anticlockwise from centre front\0A except where indicated.\0A Layouts indicated with * are compatible with WAVEX speaker position order. \0A Available speaker layouts:\0A 1 : * mono (= W signal only)\0A 2 : * stereo (quasi mid/side, = W +- Y)\0A 3 : square\0A 4 : * quad FL,FR,RL,RR order\0A 5 : pentagon\0A 6 : * 5.0 surround (WAVEX order)\0A 7 : * 5.1 surround (WAVEX order, silent LFE)\0A 8 : hexagon\0A 9 : octagon 1 (front pair, 45deg)\0A 10 : octagon 2 (front centre speaker)\0A 11 : cube (as 3, low-high interleaved. Csound-compatible.)\0A 12 : * cube (as 4, low quad followed by high quad).\0A NOTE: no shelf filters or NF compensation used.\0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1090 x i8], [1090 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1089 x i8] c"usage: fmdcode [-x][-w] infile outfile layout\0A -w : write plain WAVE outfile format\0A (.wav default - use generic wavex format).\0A -x : write std WAVEX speaker positions to header\0A (applies to compatible layouts only; requires .wav extension).\0A layout : one of the choices below.\0A Output channel order is anticlockwise from centre front\0A except where indicated.\0A Layouts indicated with * are compatible with WAVEX speaker position order. \0A Available speaker layouts:\0A 1 : * mono (= W signal only)\0A 2 : * stereo (quasi mid/side, = W +- Y)\0A 3 : square\0A 4 : * quad FL,FR,RL,RR order\0A 5 : pentagon\0A 6 : * 5.0 surround (WAVEX order)\0A 7 : * 5.1 surround (WAVEX order, silent LFE)\0A 8 : hexagon\0A 9 : octagon 1 (front pair, 45deg)\0A 10 : octagon 2 (front centre speaker)\0A 11 : cube (as 3, low-high interleaved. Csound-compatible.)\0A 12 : * cube (as 4, low quad followed by high quad).\0A NOTE: no shelf filters or NF compensation used.\00"
define void @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1089 x i8], [1089 x i8]* @str, i64 0, i64 0))
ret void
}