#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.32 $\n"
        "usage: fornav chan_count\n"
        "              [-v] [-m]\n"
        "              [-s chan_scan_first colrow_scan_first]\n"
        "       defaults:         0                 0\n"
        "              [-S grid_col_start grid_row_start]\n"
        "       defaults:         0                     0              0\n"
        "              [-t swath_data_type_1 ... swath_data_type_chan_count]\n"
        "       defaults:          s2                       s2\n"
        "              [-T grid_data_type_1 ... grid_data_type_chan_count]\n"
        "       defaults:  swath_data_type_1    swath_data_type_chan_count]\n"
        "              [-f swath_fill_1 ... swath_fill_chan_count]\n"
        "       defaults:       0                      0\n"
        "              [-F grid_fill_1 ... grid_fill_chan_count]\n"
        "       defaults:  swath_fill_1    swath_fill_chan_count\n"
        "              [-r col_row_min]\n"
        "       defaults:       0\n"
        "              [-c weight_count] [-w weight_min] [-d "
        "weight_distance_max]\n"
        "       defaults:     10000             .01               1.0\n"
        "              [-D weight_delta_max] [-W weight_sum_min]\n"
        "       defaults:       10.0               weight_min\n"
        "              [-C swath_col_offset -R swath_row_offset\n"
        "       defaults:         0                   0\n"
        "              swath_cols swath_scans swath_rows_per_scan\n"
        "              swath_col_file swath_row_file\n"
        "              swath_chan_file_1 ... swath_chan_file_chan_count\n"
        "              grid_cols grid_rows\n"
        "              grid_chan_file_1 ... grid_chan_file_chan_count\n"
        "\n"
        " input : chan_count: number of input and output channel files. This "
        "parameter\n"
        "           must precede any specified options.\n"
        "         swath_cols: number of columns in each input swath file.\n"
        "         swath_scans: number of scans in each input swath file.\n"
        "         swath_rows_per_scan: number of swath rows constituting a "
        "scan.\n"
        "           Must be at least 2.\n"
        "         swath_col_file: file containing the projected column number "
        "of each\n"
        "           swath cell and consisting of swatch_cols x swath_rows of 4 "
        "byte\n"
        "           floating-point numbers.\n"
        "         swath_row_file: file containing the projected row number of "
        "each\n"
        "           swath cell and consisting of swatch_cols x swath_rows of 4 "
        "byte\n"
        "           floating-point numbers.\n"
        "         swath_chan_file_1 ... swath_chan_file_chan_count: swath "
        "channel files\n"
        "           1 through chan_count. Each file consists of swath_cols x "
        "swath_rows\n"
        "           cells as indicated by swath_data_type (see below).\n"
        "         grid_cols: number of columns in each output grid file.\n"
        "         grid_rows: number of rows in each output grid file.\n"
        "\n"
        " output: grid_chan_file_1 ... grid_chan_file_chan_count: grid channel "
        "files\n"
        "           1 through chan_count. Each file consists of grid_cols x "
        "grid_rows\n"
        "           cells as indicated by grid_type (see below).\n"
        "\n"
        " option: v: verbose (may be repeated).\n"
        "         m: maximum weight mode. If -m is not present, a weighted "
        "average of\n"
        "             all swath cells that map to a particular grid cell is "
        "used.\n"
        "             If -m is present, the swath cell having the maximum "
        "weight of all\n"
        "             swath cells that map to a particular grid cell is used. "
        "The -m\n"
        "             option should be used for coded data, i.e. snow cover.\n"
        "         s chan_scan_first colrow_scan_first: the first scan number "
        "to process\n"
        "             in the swath channel files and column and row files, "
        "respectively.\n"
        "             Default is 0 for both.\n"
        "         S grid_col_start grid_row_start: starting grid column number "
        "and row\n"
        "             number to write to each output grid file. The defaults "
        "are 0.\n"
        "         t swath_data_type_1 ... swath_data_type_chan_count: "
        "specifies the type\n"
        "             of each swath cell for each channel as follows:\n"
        "               u1: unsigned 8-bit integer.\n"
        "               u2: unsigned 16-bit integer.\n"
        "               s2: signed 16-bit integer (default).\n"
        "               u4: unsigned 32-bit integer.\n"
        "               s4: signed 32-bit integer.\n"
        "               f4: 32-bit floating-point.\n"
        "         T grid_data_type_1 ... grid_data_type_chan_count: specifies "
        "the type\n"
        "             of each grid cell for each channel as in the -t option. "
        "If the\n"
        "             default value is the corresponding swath data type "
        "value.\n"
        "         f swath_fill_1 ... swath_fill_chan_count: specifies fill "
        "value to use\n"
        "             for detecting any missing cells in each swath file. "
        "Missing swath\n"
        "             cells are ignored. The default value is 0.\n"
        "         F grid_fill_1 ... grid_fill_chan_count: specifies fill value "
        "to use\n"
        "             for any unmapped cells in each grid file. The default "
        "value is the\n"
        "             corresponding swath fill value.\n"
        "         r col_row_min: specifies minimum value to use for detecting "
        "any\n"
        "             missing cells in each column and row file. Missing swath "
        "cells\n"
        "             have column and row values less than this value and are\n"
        "             ignored. The default value is 0.\n"
        "         c weight_count: number of elements to create in the gaussian "
        "weight\n"
        "             table. Default is 10000. Must be at least 2.\n"
        "         w weight_min: the minimum value to store in the last "
        "position of the\n"
        "             weight table. Default is 0.01, which, with a "
        "weight_distance_max\n"
        "             of 1.0 produces a weight of 0.01 at a grid cell distance "
        "of 1.0.\n"
        "             Must be greater than 0.\n"
        "         d weight_distance_max: distance in grid cell units at which "
        "to apply a\n"
        "             weight of weight_min. Default is 1.0. Must be greater "
        "than 0.\n"
        "         D weight_delta_max: maximum distance in grid cells in each "
        "grid\n"
        "             dimension over which to distribute a single swath cell.\n"
        "             Default is 10.0.\n"
        "         W weight_sum_min: minimum weight sum value. Cells whose "
        "weight sums\n"
        "             are less than weight_sum_min are set to the grid fill "
        "value.\n"
        "             Default is weight_sum_min.\n"
        "         C swath_col_offset: value to be subtracted from each value "
        "in\n"
        "             swath_col_file. Default is 0.\n"
        "         R swath_row_offset: value to be subtracted from each value "
        "in\n"
        "             swath_row_file. Default is 0.\n"
        "\n");
    exit(EXIT_FAILURE);
  };
}


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

x86 assembly (clang, -O2):
<DisplayUsage>:
push   %rax
mov    0x3eb8(%rip),%rax
mov    (%rax),%edi
lea    0xecf(%rip),%rsi
lea    0xecc(%rip),%rdx
call   1030 <fprintf@plt>
mov    0x3e94(%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 = [5923 x i8] c"$Revision: 1.32 $\0Ausage: fornav chan_count\0A [-v] [-m]\0A [-s chan_scan_first colrow_scan_first]\0A defaults: 0 0\0A [-S grid_col_start grid_row_start]\0A defaults: 0 0 0\0A [-t swath_data_type_1 ... swath_data_type_chan_count]\0A defaults: s2 s2\0A [-T grid_data_type_1 ... grid_data_type_chan_count]\0A defaults: swath_data_type_1 swath_data_type_chan_count]\0A [-f swath_fill_1 ... swath_fill_chan_count]\0A defaults: 0 0\0A [-F grid_fill_1 ... grid_fill_chan_count]\0A defaults: swath_fill_1 swath_fill_chan_count\0A [-r col_row_min]\0A defaults: 0\0A [-c weight_count] [-w weight_min] [-d weight_distance_max]\0A defaults: 10000 .01 1.0\0A [-D weight_delta_max] [-W weight_sum_min]\0A defaults: 10.0 weight_min\0A [-C swath_col_offset -R swath_row_offset\0A defaults: 0 0\0A swath_cols swath_scans swath_rows_per_scan\0A swath_col_file swath_row_file\0A swath_chan_file_1 ... swath_chan_file_chan_count\0A grid_cols grid_rows\0A grid_chan_file_1 ... grid_chan_file_chan_count\0A\0A input : chan_count: number of input and output channel files. This parameter\0A must precede any specified options.\0A swath_cols: number of columns in each input swath file.\0A swath_scans: number of scans in each input swath file.\0A swath_rows_per_scan: number of swath rows constituting a scan.\0A Must be at least 2.\0A swath_col_file: file containing the projected column number of each\0A swath cell and consisting of swatch_cols x swath_rows of 4 byte\0A floating-point numbers.\0A swath_row_file: file containing the projected row number of each\0A swath cell and consisting of swatch_cols x swath_rows of 4 byte\0A floating-point numbers.\0A swath_chan_file_1 ... swath_chan_file_chan_count: swath channel files\0A 1 through chan_count. Each file consists of swath_cols x swath_rows\0A cells as indicated by swath_data_type (see below).\0A grid_cols: number of columns in each output grid file.\0A grid_rows: number of rows in each output grid file.\0A\0A output: grid_chan_file_1 ... grid_chan_file_chan_count: grid channel files\0A 1 through chan_count. Each file consists of grid_cols x grid_rows\0A cells as indicated by grid_type (see below).\0A\0A option: v: verbose (may be repeated).\0A m: maximum weight mode. If -m is not present, a weighted average of\0A all swath cells that map to a particular grid cell is used.\0A If -m is present, the swath cell having the maximum weight of all\0A swath cells that map to a particular grid cell is used. The -m\0A option should be used for coded data, i.e. snow cover.\0A s chan_scan_first colrow_scan_first: the first scan number to process\0A in the swath channel files and column and row files, respectively.\0A Default is 0 for both.\0A S grid_col_start grid_row_start: starting grid column number and row\0A number to write to each output grid file. The defaults are 0.\0A t swath_data_type_1 ... swath_data_type_chan_count: specifies the type\0A of each swath cell for each channel as follows:\0A u1: unsigned 8-bit integer.\0A u2: unsigned 16-bit integer.\0A s2: signed 16-bit integer (default).\0A u4: unsigned 32-bit integer.\0A s4: signed 32-bit integer.\0A f4: 32-bit floating-point.\0A T grid_data_type_1 ... grid_data_type_chan_count: specifies the type\0A of each grid cell for each channel as in the -t option. If the\0A default value is the corresponding swath data type value.\0A f swath_fill_1 ... swath_fill_chan_count: specifies fill value to use\0A for detecting any missing cells in each swath file. Missing swath\0A cells are ignored. The default value is 0.\0A F grid_fill_1 ... grid_fill_chan_count: specifies fill value to use\0A for any unmapped cells in each grid file. The default value is the\0A corresponding swath fill value.\0A r col_row_min: specifies minimum value to use for detecting any\0A missing cells in each column and row file. Missing swath cells\0A have column and row values less than this value and are\0A ignored. The default value is 0.\0A c weight_count: number of elements to create in the gaussian weight\0A table. Default is 10000. Must be at least 2.\0A w weight_min: the minimum value to store in the last position of the\0A weight table. Default is 0.01, which, with a weight_distance_max\0A of 1.0 produces a weight of 0.01 at a grid cell distance of 1.0.\0A Must be greater than 0.\0A d weight_distance_max: distance in grid cell units at which to apply a\0A weight of weight_min. Default is 1.0. Must be greater than 0.\0A D weight_delta_max: maximum distance in grid cells in each grid\0A dimension over which to distribute a single swath cell.\0A Default is 10.0.\0A W weight_sum_min: minimum weight sum value. Cells whose weight sums\0A are less than weight_sum_min are set to the grid fill value.\0A Default is weight_sum_min.\0A C swath_col_offset: value to be subtracted from each value in\0A swath_col_file. Default is 0.\0A R swath_row_offset: value to be subtracted from each value in\0A swath_row_file. Default is 0.\0A\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 ([5923 x i8], [5923 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 = [5923 x i8] c"$Revision: 1.32 $\0Ausage: fornav chan_count\0A [-v] [-m]\0A [-s chan_scan_first colrow_scan_first]\0A defaults: 0 0\0A [-S grid_col_start grid_row_start]\0A defaults: 0 0 0\0A [-t swath_data_type_1 ... swath_data_type_chan_count]\0A defaults: s2 s2\0A [-T grid_data_type_1 ... grid_data_type_chan_count]\0A defaults: swath_data_type_1 swath_data_type_chan_count]\0A [-f swath_fill_1 ... swath_fill_chan_count]\0A defaults: 0 0\0A [-F grid_fill_1 ... grid_fill_chan_count]\0A defaults: swath_fill_1 swath_fill_chan_count\0A [-r col_row_min]\0A defaults: 0\0A [-c weight_count] [-w weight_min] [-d weight_distance_max]\0A defaults: 10000 .01 1.0\0A [-D weight_delta_max] [-W weight_sum_min]\0A defaults: 10.0 weight_min\0A [-C swath_col_offset -R swath_row_offset\0A defaults: 0 0\0A swath_cols swath_scans swath_rows_per_scan\0A swath_col_file swath_row_file\0A swath_chan_file_1 ... swath_chan_file_chan_count\0A grid_cols grid_rows\0A grid_chan_file_1 ... grid_chan_file_chan_count\0A\0A input : chan_count: number of input and output channel files. This parameter\0A must precede any specified options.\0A swath_cols: number of columns in each input swath file.\0A swath_scans: number of scans in each input swath file.\0A swath_rows_per_scan: number of swath rows constituting a scan.\0A Must be at least 2.\0A swath_col_file: file containing the projected column number of each\0A swath cell and consisting of swatch_cols x swath_rows of 4 byte\0A floating-point numbers.\0A swath_row_file: file containing the projected row number of each\0A swath cell and consisting of swatch_cols x swath_rows of 4 byte\0A floating-point numbers.\0A swath_chan_file_1 ... swath_chan_file_chan_count: swath channel files\0A 1 through chan_count. Each file consists of swath_cols x swath_rows\0A cells as indicated by swath_data_type (see below).\0A grid_cols: number of columns in each output grid file.\0A grid_rows: number of rows in each output grid file.\0A\0A output: grid_chan_file_1 ... grid_chan_file_chan_count: grid channel files\0A 1 through chan_count. Each file consists of grid_cols x grid_rows\0A cells as indicated by grid_type (see below).\0A\0A option: v: verbose (may be repeated).\0A m: maximum weight mode. If -m is not present, a weighted average of\0A all swath cells that map to a particular grid cell is used.\0A If -m is present, the swath cell having the maximum weight of all\0A swath cells that map to a particular grid cell is used. The -m\0A option should be used for coded data, i.e. snow cover.\0A s chan_scan_first colrow_scan_first: the first scan number to process\0A in the swath channel files and column and row files, respectively.\0A Default is 0 for both.\0A S grid_col_start grid_row_start: starting grid column number and row\0A number to write to each output grid file. The defaults are 0.\0A t swath_data_type_1 ... swath_data_type_chan_count: specifies the type\0A of each swath cell for each channel as follows:\0A u1: unsigned 8-bit integer.\0A u2: unsigned 16-bit integer.\0A s2: signed 16-bit integer (default).\0A u4: unsigned 32-bit integer.\0A s4: signed 32-bit integer.\0A f4: 32-bit floating-point.\0A T grid_data_type_1 ... grid_data_type_chan_count: specifies the type\0A of each grid cell for each channel as in the -t option. If the\0A default value is the corresponding swath data type value.\0A f swath_fill_1 ... swath_fill_chan_count: specifies fill value to use\0A for detecting any missing cells in each swath file. Missing swath\0A cells are ignored. The default value is 0.\0A F grid_fill_1 ... grid_fill_chan_count: specifies fill value to use\0A for any unmapped cells in each grid file. The default value is the\0A corresponding swath fill value.\0A r col_row_min: specifies minimum value to use for detecting any\0A missing cells in each column and row file. Missing swath cells\0A have column and row values less than this value and are\0A ignored. The default value is 0.\0A c weight_count: number of elements to create in the gaussian weight\0A table. Default is 10000. Must be at least 2.\0A w weight_min: the minimum value to store in the last position of the\0A weight table. Default is 0.01, which, with a weight_distance_max\0A of 1.0 produces a weight of 0.01 at a grid cell distance of 1.0.\0A Must be greater than 0.\0A d weight_distance_max: distance in grid cell units at which to apply a\0A weight of weight_min. Default is 1.0. Must be greater than 0.\0A D weight_delta_max: maximum distance in grid cells in each grid\0A dimension over which to distribute a single swath cell.\0A Default is 10.0.\0A W weight_sum_min: minimum weight sum value. Cells whose weight sums\0A are less than weight_sum_min are set to the grid fill value.\0A Default is weight_sum_min.\0A C swath_col_offset: value to be subtracted from each value in\0A swath_col_file. Default is 0.\0A R swath_row_offset: value to be subtracted from each value in\0A swath_row_file. Default is 0.\0A\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 ([5923 x i8], [5923 x i8]* @.str.1, i64 0, i64 0))
%3 = load i32, i32* @EXIT_FAILURE
%4 = tail call i32 @exit(i32 %3)
unreachable
}