#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 *, char *);
void Usage(char *progName) {
  char *message;
  message =
      "Usage:\n\nFindMax  --north=north --south=south --east=east --west=west "
      "\n         --dataFile=dataFile --highClip=value --lowClip=value\n       "
      "  --gridFile=gridFile --fort63Mode=mode [--scale=scale] \n\nFindMax "
      "find the minimim and maximum values for an ADCIRC fort.63\ndata set. "
      "The minimum and maximum values are calculated only in the \nportion of "
      "the data set inside the bounding box formed by the north, \nsouth, east "
      "and west values. The high and low clip values eliminate \nfrom "
      "consideration values outside a specified range. The optional scale "
      "\nparameter is used to scale the min and max values returned: The "
      "default \nscale value is 1. The min and max values are printed on "
      "standard output\ndelimited by a space.\n\nThe data set can be provided "
      "in either netCDF or ascii format.\nThe data set must include both the "
      "values at each point and the grid \ncoordinates of each point. If the "
      "data set is provided in netCDF, then \nthe netCDF file (specified by "
      "--dataFile) must contain the grid info and \nthe data. Otherwise the "
      "grid info should be specified with --gridFile and \nthe data file "
      "should be specified with --dataFile. The --fort63mode  \nparameter "
      "controls how the data is specified.  The following modes are "
      "\nsupported:\n\n\tnetCDFScoop: the grid and value data are in a netCDF "
      "file that conforms \n\t\tto that used in the ADCIRC implementation of "
      "the SURA Coastal \n\t\tOcean Observing and Prediction (SCOOP) "
      "Program.\n\n\tcompact: The data values are contained in the fort.63 "
      "formatted file\n\t\tspecified by the --dataFile parameter.  Nodes "
      "without valid data\n\t\tare not represented in the file. The nodes "
      "composing the grid\n\t\tare contained in the file specified by the "
      "--gridFile parameter.\n\n\tfull: The data values are contained in the "
      "fort.63 formatted file\n\t\tspecified by the --dataFile parameter.  All "
      "nodes are\n\t\trepresented in the file. The nodes composing the grid "
      "\n\t\tare contained in the file specified by the\n\t\t--gridFile "
      "parameter.\n\nThe arguments are:\n\n\t--help: Print this "
      "message.\n\t--north: The northern extent of the bounding "
      "box.\n\t--south: The southern extent of the bounding box.\n\t--east: "
      "The eastern extent of the bounding box.\n\t--west: The western extent "
      "of the bounding box.\n\t--dataFile: The file containing the data values "
      "on which\n\t\tto calculate the minimum and maximum.\n\t--highClip: The "
      "upper bound of values considered in the max calculation.\n\t--lowClip: "
      "The lower bound of values considered in the min "
      "calculation.\n\t--gridFile: The file containing the grid on which to "
      "calculate the\n\t\tthe minimum and maximum.\n\t--fort63Mode: The mode "
      "for the input data, as discussed above.\n\t--scale: A scale factor "
      "(default 1.0) applied to the min and max before\n\t\tthey are printed.";
  printf("%s\n", message);
}


x86 assembly (clang, -O0):
<Usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
lea    0xedd(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
lea    0x1941(%rip),%rdi
call   1030 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Usage>:
lea    0x195c(%rip),%rdi
lea    0xee2(%rip),%rsi
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [2675 x i8] c"Usage:\0A\0AFindMax --north=north --south=south --east=east --west=west \0A --dataFile=dataFile --highClip=value --lowClip=value\0A --gridFile=gridFile --fort63Mode=mode [--scale=scale] \0A\0AFindMax find the minimim and maximum values for an ADCIRC fort.63\0Adata set. The minimum and maximum values are calculated only in the \0Aportion of the data set inside the bounding box formed by the north, \0Asouth, east and west values. The high and low clip values eliminate \0Afrom consideration values outside a specified range. The optional scale \0Aparameter is used to scale the min and max values returned: The default \0Ascale value is 1. The min and max values are printed on standard output\0Adelimited by a space.\0A\0AThe data set can be provided in either netCDF or ascii format.\0AThe data set must include both the values at each point and the grid \0Acoordinates of each point. If the data set is provided in netCDF, then \0Athe netCDF file (specified by --dataFile) must contain the grid info and \0Athe data. Otherwise the grid info should be specified with --gridFile and \0Athe data file should be specified with --dataFile. The --fort63mode \0Aparameter controls how the data is specified. The following modes are \0Asupported:\0A\0A\09netCDFScoop: the grid and value data are in a netCDF file that conforms \0A\09\09to that used in the ADCIRC implementation of the SURA Coastal \0A\09\09Ocean Observing and Prediction (SCOOP) Program.\0A\0A\09compact: The data values are contained in the fort.63 formatted file\0A\09\09specified by the --dataFile parameter. Nodes without valid data\0A\09\09are not represented in the file. The nodes composing the grid\0A\09\09are contained in the file specified by the --gridFile parameter.\0A\0A\09full: The data values are contained in the fort.63 formatted file\0A\09\09specified by the --dataFile parameter. All nodes are\0A\09\09represented in the file. The nodes composing the grid \0A\09\09are contained in the file specified by the\0A\09\09--gridFile parameter.\0A\0AThe arguments are:\0A\0A\09--help: Print this message.\0A\09--north: The northern extent of the bounding box.\0A\09--south: The southern extent of the bounding box.\0A\09--east: The eastern extent of the bounding box.\0A\09--west: The western extent of the bounding box.\0A\09--dataFile: The file containing the data values on which\0A\09\09to calculate the minimum and maximum.\0A\09--highClip: The upper bound of values considered in the max calculation.\0A\09--lowClip: The lower bound of values considered in the min calculation.\0A\09--gridFile: The file containing the grid on which to calculate the\0A\09\09the minimum and maximum.\0A\09--fort63Mode: The mode for the input data, as discussed above.\0A\09--scale: A scale factor (default 1.0) applied to the min and max before\0A\09\09they are printed.\00"
@.str.1 = [4 x i8] c"%s\0A\00"
define void @Usage(i8* %0) {
%2 = alloca i8*
%3 = alloca i8*
store i8* %0, i8** %2
store i8* getelementptr inbounds ([2675 x i8], [2675 x i8]* @.str, i64 0, i64 0), i8** %3
%4 = load i8*, i8** %3
%5 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i8* %4)
ret void
}

LLVM IR (-O2):
@.str = [2675 x i8] c"Usage:\0A\0AFindMax --north=north --south=south --east=east --west=west \0A --dataFile=dataFile --highClip=value --lowClip=value\0A --gridFile=gridFile --fort63Mode=mode [--scale=scale] \0A\0AFindMax find the minimim and maximum values for an ADCIRC fort.63\0Adata set. The minimum and maximum values are calculated only in the \0Aportion of the data set inside the bounding box formed by the north, \0Asouth, east and west values. The high and low clip values eliminate \0Afrom consideration values outside a specified range. The optional scale \0Aparameter is used to scale the min and max values returned: The default \0Ascale value is 1. The min and max values are printed on standard output\0Adelimited by a space.\0A\0AThe data set can be provided in either netCDF or ascii format.\0AThe data set must include both the values at each point and the grid \0Acoordinates of each point. If the data set is provided in netCDF, then \0Athe netCDF file (specified by --dataFile) must contain the grid info and \0Athe data. Otherwise the grid info should be specified with --gridFile and \0Athe data file should be specified with --dataFile. The --fort63mode \0Aparameter controls how the data is specified. The following modes are \0Asupported:\0A\0A\09netCDFScoop: the grid and value data are in a netCDF file that conforms \0A\09\09to that used in the ADCIRC implementation of the SURA Coastal \0A\09\09Ocean Observing and Prediction (SCOOP) Program.\0A\0A\09compact: The data values are contained in the fort.63 formatted file\0A\09\09specified by the --dataFile parameter. Nodes without valid data\0A\09\09are not represented in the file. The nodes composing the grid\0A\09\09are contained in the file specified by the --gridFile parameter.\0A\0A\09full: The data values are contained in the fort.63 formatted file\0A\09\09specified by the --dataFile parameter. All nodes are\0A\09\09represented in the file. The nodes composing the grid \0A\09\09are contained in the file specified by the\0A\09\09--gridFile parameter.\0A\0AThe arguments are:\0A\0A\09--help: Print this message.\0A\09--north: The northern extent of the bounding box.\0A\09--south: The southern extent of the bounding box.\0A\09--east: The eastern extent of the bounding box.\0A\09--west: The western extent of the bounding box.\0A\09--dataFile: The file containing the data values on which\0A\09\09to calculate the minimum and maximum.\0A\09--highClip: The upper bound of values considered in the max calculation.\0A\09--lowClip: The lower bound of values considered in the min calculation.\0A\09--gridFile: The file containing the grid on which to calculate the\0A\09\09the minimum and maximum.\0A\09--fort63Mode: The mode for the input data, as discussed above.\0A\09--scale: A scale factor (default 1.0) applied to the min and max before\0A\09\09they are printed.\00"
@.str.1 = [4 x i8] c"%s\0A\00"
define void @Usage(i8* nocapture readnone %0) {
%2 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([2675 x i8], [2675 x i8]* @.str, i64 0, i64 0))
ret void
}