#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*/ EXIT_FAILURE;
int /*<<< orphan*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, char *);
int /*<<< orphan*/ stderr;
void DisplayUsage(void) {
  {
    fprintf(
        stderr, "%s\n",
        "$Revision: 1.8 $\n"
        "usage: insert_region [-v] [-i [fill_value]] [-t transparent_value] "
        "[-f]\n"
        "          bytes_per_cell cols_in rows_in\n"
        "          col_start row_start cols_out rows_out\n"
        "          file_in\n"
        "          file_out\n"
        "  input : bytes_per_cell - the number of bytes per single grid "
        "location.\n"
        "          cols_in - the number of columns in the region (input "
        "file).\n"
        "          rows_in - the number of rows in the region (input file).\n"
        "          col_start - the zero-based column number in the output "
        "file\n"
        "            specifying where to insert the region.\n"
        "          row_start - the zero-based row number in the output file\n"
        "            specifying where to insert the region.\n"
        "          cols_out - the number of columns in the output file.\n"
        "          rows_out - the number of rows in the output file.\n"
        "          file_in  - the input grid filename.\n"
        "  output: file_out - the output grid filename.\n"
        "  option: v - verbose (may be repeated)\n"
        "          i [fill_value] - initialize the output file to the "
        "specified fill\n"
        "            value. If the fill value is not specified, then 0 is "
        "used.\n"
        "          t transparent_value - specifies that any occurrences of "
        "the\n"
        "            specified transparent value in the input file will not "
        "be\n"
        "            inserted into the output file.\n"
        "          f - specifies floating-point data. Requires that "
        "bytes_per_cell\n"
        "            by equal to 4 or 8.\n");
    exit(EXIT_FAILURE);
  };
}


x86 assembly (clang, -O0):
<DisplayUsage>:
push   %rbp
mov    %rsp,%rbp
mov    0x2eb5(%rip),%rax
mov    (%rax),%edi
lea    0xecc(%rip),%rsi
lea    0xec9(%rip),%rdx
call   1030 <fprintf@plt>
mov    0x2e91(%rip),%rax
mov    (%rax),%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<DisplayUsage>:
push   %rax
mov    0x2eb8(%rip),%rax
mov    (%rax),%edi
lea    0xecf(%rip),%rsi
lea    0xecc(%rip),%rdx
call   1030 <fprintf@plt>
mov    0x2e94(%rip),%rax
mov    (%rax),%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [4 x i8] c"%s\0A\00"
@.str.1 = [1357 x i8] c"$Revision: 1.8 $\0Ausage: insert_region [-v] [-i [fill_value]] [-t transparent_value] [-f]\0A bytes_per_cell cols_in rows_in\0A col_start row_start cols_out rows_out\0A file_in\0A file_out\0A input : bytes_per_cell - the number of bytes per single grid location.\0A cols_in - the number of columns in the region (input file).\0A rows_in - the number of rows in the region (input file).\0A col_start - the zero-based column number in the output file\0A specifying where to insert the region.\0A row_start - the zero-based row number in the output file\0A specifying where to insert the region.\0A cols_out - the number of columns in the output file.\0A rows_out - the number of rows in the output file.\0A file_in - the input grid filename.\0A output: file_out - the output grid filename.\0A option: v - verbose (may be repeated)\0A i [fill_value] - initialize the output file to the specified fill\0A value. If the fill value is not specified, then 0 is used.\0A t transparent_value - specifies that any occurrences of the\0A specified transparent value in the input file will not be\0A inserted into the output file.\0A f - specifies floating-point data. Requires that bytes_per_cell\0A by equal to 4 or 8.\0A\00"
@EXIT_FAILURE = global i32 0
define void @DisplayUsage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([1357 x i8], [1357 x i8]* @.str.1, i64 0, i64 0))
%3 = load i32, i32* @EXIT_FAILURE
%4 = call i32 @exit(i32 %3)
unreachable
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [4 x i8] c"%s\0A\00"
@.str.1 = [1357 x i8] c"$Revision: 1.8 $\0Ausage: insert_region [-v] [-i [fill_value]] [-t transparent_value] [-f]\0A bytes_per_cell cols_in rows_in\0A col_start row_start cols_out rows_out\0A file_in\0A file_out\0A input : bytes_per_cell - the number of bytes per single grid location.\0A cols_in - the number of columns in the region (input file).\0A rows_in - the number of rows in the region (input file).\0A col_start - the zero-based column number in the output file\0A specifying where to insert the region.\0A row_start - the zero-based row number in the output file\0A specifying where to insert the region.\0A cols_out - the number of columns in the output file.\0A rows_out - the number of rows in the output file.\0A file_in - the input grid filename.\0A output: file_out - the output grid filename.\0A option: v - verbose (may be repeated)\0A i [fill_value] - initialize the output file to the specified fill\0A value. If the fill value is not specified, then 0 is used.\0A t transparent_value - specifies that any occurrences of the\0A specified transparent value in the input file will not be\0A inserted into the output file.\0A f - specifies floating-point data. Requires that bytes_per_cell\0A by equal to 4 or 8.\0A\00"
@EXIT_FAILURE = global i32 0
define void @DisplayUsage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([1357 x i8], [1357 x i8]* @.str.1, i64 0, i64 0))
%3 = load i32, i32* @EXIT_FAILURE
%4 = tail call i32 @exit(i32 %3)
unreachable
}