#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*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stderr;
void Usage() {
  fprintf(
      stderr,
      "spec_jpeg - prototype JPEG benchmark for SPEC95\narguments:\n    -GO\n  "
      "  	actually perform a JPEG compression and decompression cycle,\n "
      "   	evaluating results, using parameters specified to the left\n   "
      " -GO.compress\n    -GO.decompress\n    	execute compression and "
      "decompression independently,\n    	e.g. when benchmarking, to "
      "balance weightings\n\n    -image_file	<filename>\n    -subimage ulx "
      "uly rlx rly\n    	4 FP values specifying coordinates of upper "
      "left (UL)\n    	and lower right (LR) corners of subimage,\n    	where "
      "(0,0) is UL and (1,1) are UL and LR corners\n    	of original "
      "image.\n\n    -compression.quality <0-100>\n    	lowest..highest "
      "quality\n    -compression.optimize_coding <0/1>\n    	do not/do "
      "compute optimum Huffman coding tables\n    "
      "-compression.smoothing_factor <0-100>\n    	minimal..maximal "
      "smoothing\n\n    -decompression.quantize_colors <0/1>\n    "
      "-decompression.do_fancy_upsampling <0/1>\n    "
      "-decompression.desired_number_of_colors <n>\n    	number of "
      "colours to quantize to\n    -decompression.two_pass_quantize <0/1>\n    "
      "-decompression.dither_mode <mode>\n    	NONE, ORDERED, or FS\n\n    "
      "-difference.image <0/1>\n    	calculate the difference of the "
      "original and decompressed images\n    -difference.histogram <0/1>\n    "
      "	print a histogram of RGB differences\n    -difference.L1_norm <0/1>\n  "
      "  	calculate an L1 norm (sum of absolute values of differences)\n "
      "   -difference.L2_norm <0/1>\n    	calculate an L2 norm (sum of "
      "squares of differences)\n    -difference.row_stride <n>\n    "
      "-difference.row_stride <n>\n    	only look at ever Nth row or column\n  "
      "  	as a quick and dirty check\n\n    -checksum <0/1>\n    	"
      "calculate simple XOR  checksum of the image\n    	using row and "
      "column strides defined above\n\n    Miscellaneous options:\n	"
      "-help\n	-usage\n	    print this message\n	-verbose "
      "<0/1>\n    	-comment <comment-token>\n    	-comment.begin ... "
      "-comment.end\n    	-end\n    	    stop command line "
      "parsing\n    	-debug <0/1>\n    	    enables debugging (if "
      "program was compiled with it)\n\n");
}


x86 assembly (clang, -O0):
<Usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x2ec5(%rip),%rax
mov    (%rax),%edi
lea    0xedc(%rip),%rsi
call   1030 <fprintf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<Usage>:
mov    0x2ec9(%rip),%rax
mov    (%rax),%edi
lea    0xee0(%rip),%rsi
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [1980 x i8] c"spec_jpeg - prototype JPEG benchmark for SPEC95\0Aarguments:\0A -GO\0A \09actually perform a JPEG compression and decompression cycle,\0A \09evaluating results, using parameters specified to the left\0A -GO.compress\0A -GO.decompress\0A \09execute compression and decompression independently,\0A \09e.g. when benchmarking, to balance weightings\0A\0A -image_file\09<filename>\0A -subimage ulx uly rlx rly\0A \094 FP values specifying coordinates of upper left (UL)\0A \09and lower right (LR) corners of subimage,\0A \09where (0,0) is UL and (1,1) are UL and LR corners\0A \09of original image.\0A\0A -compression.quality <0-100>\0A \09lowest..highest quality\0A -compression.optimize_coding <0/1>\0A \09do not/do compute optimum Huffman coding tables\0A -compression.smoothing_factor <0-100>\0A \09minimal..maximal smoothing\0A\0A -decompression.quantize_colors <0/1>\0A -decompression.do_fancy_upsampling <0/1>\0A -decompression.desired_number_of_colors <n>\0A \09number of colours to quantize to\0A -decompression.two_pass_quantize <0/1>\0A -decompression.dither_mode <mode>\0A \09NONE, ORDERED, or FS\0A\0A -difference.image <0/1>\0A \09calculate the difference of the original and decompressed images\0A -difference.histogram <0/1>\0A \09print a histogram of RGB differences\0A -difference.L1_norm <0/1>\0A \09calculate an L1 norm (sum of absolute values of differences)\0A -difference.L2_norm <0/1>\0A \09calculate an L2 norm (sum of squares of differences)\0A -difference.row_stride <n>\0A -difference.row_stride <n>\0A \09only look at ever Nth row or column\0A \09as a quick and dirty check\0A\0A -checksum <0/1>\0A \09calculate simple XOR checksum of the image\0A \09using row and column strides defined above\0A\0A Miscellaneous options:\0A\09-help\0A\09-usage\0A\09 print this message\0A\09-verbose <0/1>\0A \09-comment <comment-token>\0A \09-comment.begin ... -comment.end\0A \09-end\0A \09 stop command line parsing\0A \09-debug <0/1>\0A \09 enables debugging (if program was compiled with it)\0A\0A\00"
define void @Usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1980 x i8], [1980 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [1980 x i8] c"spec_jpeg - prototype JPEG benchmark for SPEC95\0Aarguments:\0A -GO\0A \09actually perform a JPEG compression and decompression cycle,\0A \09evaluating results, using parameters specified to the left\0A -GO.compress\0A -GO.decompress\0A \09execute compression and decompression independently,\0A \09e.g. when benchmarking, to balance weightings\0A\0A -image_file\09<filename>\0A -subimage ulx uly rlx rly\0A \094 FP values specifying coordinates of upper left (UL)\0A \09and lower right (LR) corners of subimage,\0A \09where (0,0) is UL and (1,1) are UL and LR corners\0A \09of original image.\0A\0A -compression.quality <0-100>\0A \09lowest..highest quality\0A -compression.optimize_coding <0/1>\0A \09do not/do compute optimum Huffman coding tables\0A -compression.smoothing_factor <0-100>\0A \09minimal..maximal smoothing\0A\0A -decompression.quantize_colors <0/1>\0A -decompression.do_fancy_upsampling <0/1>\0A -decompression.desired_number_of_colors <n>\0A \09number of colours to quantize to\0A -decompression.two_pass_quantize <0/1>\0A -decompression.dither_mode <mode>\0A \09NONE, ORDERED, or FS\0A\0A -difference.image <0/1>\0A \09calculate the difference of the original and decompressed images\0A -difference.histogram <0/1>\0A \09print a histogram of RGB differences\0A -difference.L1_norm <0/1>\0A \09calculate an L1 norm (sum of absolute values of differences)\0A -difference.L2_norm <0/1>\0A \09calculate an L2 norm (sum of squares of differences)\0A -difference.row_stride <n>\0A -difference.row_stride <n>\0A \09only look at ever Nth row or column\0A \09as a quick and dirty check\0A\0A -checksum <0/1>\0A \09calculate simple XOR checksum of the image\0A \09using row and column strides defined above\0A\0A Miscellaneous options:\0A\09-help\0A\09-usage\0A\09 print this message\0A\09-verbose <0/1>\0A \09-comment <comment-token>\0A \09-comment.begin ... -comment.end\0A \09-end\0A \09 stop command line parsing\0A \09-debug <0/1>\0A \09 enables debugging (if program was compiled with it)\0A\0A\00"
define void @Usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1980 x i8], [1980 x i8]* @.str, i64 0, i64 0))
ret void
}